2016-03-24 7 views
0

次のコードでは、データベースからJSONにデータを取得します。私は何をしたいのは、プレーンテキストとして、各単一のデータを表示することです:私はres.write(JSON.stringify(rows));を使用してデータを印刷するときノードJS:取得したデータをDBからJSONとしてプレーンテキストに変換

var http = require("http"); 
var mysql = require('mysql'); 
var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 

var urlencodedParser = bodyParser.urlencoded({ extended: false }) 

    app.use(express.static('public')); 

    app.get('/Search.html', function (req, res) { 
     res.sendFile(__dirname + "/" + "Search.html"); 
    }) 

    var connection = mysql.createConnection(
    { 
     host  : 'localhost', 
     user  : 'root', 
     password : 'passpass', 
     database : 'SocialQuery', 
    } 
    ); 

connection.connect(); 

app.post('/process_post', urlencodedParser, function (req, res) { 

    // Prepare output in JSON format 
    response = { 
     SearchType:req.body.SearchTypes, 
     Term:req.body.term 
    }; 
    //var vas = JSON.stringify(response); 
    var search = req.body.SearchTypes; 
    var term = req.body.term; 

    var queryString; 
    if(search == 'Author') 
    { 
     queryString = 'Select Label,TDate from Tweet where AuthorID IN (select ID from Author where Lable = ?)'; 
    } 
    else if(search == 'Mention') 
    { 
     queryString = 'select Tweet.Label, Tweet.TDate, Author.Lable from Tweet, Author where Tweet.ID IN (select TweetID from TweetMention where MentionID IN (select ID from Mention where Label = ?)) AND Author.ID = Tweet.AuthorID' 
    } 
    var query = connection.query(queryString, [term], function(err, rows) { 
     console.log(rows); 
     var tweet = JSON.stringify(rows); 
     res.write("Author: " + tweet.Lable); 
     res.write("Date: " + tweet.TDate); 
     res.end(); 
    }); 
    console.log(query.sql); 
}) 

//}).listen(8081); 
http.createServer(app).listen(8081); 
console.log('Server running at http://127.0.0.1:8081/'); 

私は次しまっ:

[{"Label":"lest play hero","TDate":"2016-03-12T00:00:00.000Z","Lable":"esti_jony"},{"Label":"u r the best ! Ill always keep","TDate":"2016-03-08T00:00:00.000Z","Lable":"adam03cooper03"}] 

が、私は上記のコードを実行します、私が得た:2つのデータ行が取り出されたと私はそれが各作者(Lable)と各日付(TDate)を表示できるようにする方法がわからないので、私は理解何

Author: undefined Date: undefined 

が問題です。

答えて

1

javascriptオブジェクトをJSON文字列に変換してから、その文字列のjavascriptオブジェクトのプロパティにアクセスしようとしています。それは動作しません。代わりにjavascriptオブジェクトを使用したいのですが、複数の行があるため、どちらを応答するか、すべての行を書き込むか、ユースケースが必要とするものを選択する必要があります。例えば

var query = connection.query(queryString, [term], function(err, rows) { 
    if (err) throw err; 
    for (var i = 0; i < rows.length; ++i) { 
     var tweet = rows[i]; 
     res.write("\nAuthor: " + tweet.Lable); 
     res.write("\nDate: " + tweet.TDate); 
     if (i + 1 < rows.length) 
     res.write('\n'); 
    } 
    res.end(); 
}); 
関連する問題