【问题标题】:Change my database result to JSON将我的数据库结果更改为 JSON
【发布时间】:2018-01-31 10:00:18
【问题描述】:

我想知道如何让我的查询结果成为 Node.js 中的 JSON 响应。目前,我从我的数据库中获得了 JSON 格式的结果,但我无法访问其中的值。我的代码如下。

connection.connect();

connection.query('select * from ttnews order by post_date DESC Limit 0,10', 
function (error, results, fields) {
    if (error) throw error;
    console.log(results);
});

connection.end();
responseJSON.response = results[0].headline; 
callback(null, responseJSON);

通过responseJSON.response = results[0].headline 我收到错误results is undefined

任何帮助将不胜感激。

【问题讨论】:

  • 您好,您可以提供您的方法的完整代码吗?你用express吗?

标签: mysql json node.js


【解决方案1】:

试试这个代码

var express = require('express');
var app = express();
var mysql = require('mysql');
var readline = require('readline');
var con = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'cmd'//your database name
});
con.connect(function(err){
if(err){
console.log('Error Connecting to Database');
}
});
app.get('/', function(req, res){
con.query('SELECT * FROM ttnews order by post_date DESC Limit 0,10',function(error, data){
        if(error) {
            console.log(error)
        }else{
            res.json(data)
        } 
    }); 
});
app.listen(3000,function(){
    console.log('server listening on 3000');
});

希望这会有所帮助...

【讨论】:

    【解决方案2】:

    使用 Express 4.xmysql db 的输出行是 json 格式。

    例如,

    sqlConnect.connection.query('SELECT * from users', function(err, rows, fields){
        if (err) {
            console.log("Querying error");
        } else {
            console.log(rows);
        }
        sqlConnect.connection.end();
    });
    

    输出格式为

    [ RowDataPacket {
        id: 1,
        username: 'Dani',
        password: '1q2w3e4r',
        verified: 0 } ]
    

    所以现在您可以使用 获取各个值。运算符。例如,console.log(rows[0].username) 将记录值 'Dani'

    【讨论】:

    • 这可以像以前一样工作,但是当我尝试向 JSON 变量添加值但由于某种原因,我得到未定义行。请查看我的代码responseJSON.response = rows[0].username; 这是在 sqlConnect 函数之外完成的,请注意,如果我将 rows[0].username 替换为字符串,它可以正常工作。
    • 你能用完整的 sn-p 更新你的问题吗
    • 我发现 results 数组超出了范围,所以它显示 undefined
    猜你喜欢
    • 2013-06-28
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2022-01-06
    相关资源
    最近更新 更多