簡體   English   中英

節點JS:將從數據庫檢索的數據作為JSON轉換為純文本

[英]Node JS: Convert retrieved data from DB as JSON to Plain text

在以下代碼中,數據從數據庫中檢索到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/');

當我使用res.write(JSON.stringify(rows));打印數據時res.write(JSON.stringify(rows)); 我得到以下內容:

[{"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"}]

但是當我運行上面的代碼時,我得到了:

Author: undefined Date: undefined

我所理解的是問題所在,因為已檢索到兩行數據,而且我不知道如何讓它顯示每個作者(標簽)和每個日期(TDate)。

您正在將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();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM