解析从节点“mysql”查询返回的结果时遇到一些麻烦。
节点版本7.8.0 运行CentOS AWS环境。
我在Windows Visual Studio CE 2017中开发了节点应用程序,它工作正常,但在将其移植到Linux时,它实际上并不允许我访问结果中的user_id变量。
我在尝试访问变量时包含了很多变化,但是我认为应该是正确的变量:
rows[i].user_id
所有其他人都只是作为参考,表明他们不起作用。
代码:
'use strict';
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
var mysql = require("mysql");
var con = mysql.createConnection(dbConfig);
con.connect(function (err) {
if (err) {
console.log('Error connecting to Db');
return;
}
console.log('Connection established');
});
var q = "select * from table";
con.query(q, function (err, rows) {
for (var i = 0; i < rows.length; i++) {
var row = JSON.stringify(rows[i]);
var rowParsed = JSON.parse(row);
console.log(row);
console.log(" row[0].user_id " + row[0].user_id );
console.log(" row.user_id " + row.user_id );
console.log(" parsed " + JSON.parse(row));
console.log(" rowParsed.user_id " + rowParsed.user_id);
console.log(" rowParsed['user_id'] " + rowParsed['user_id']);
console.log(" rows[i].user_id " + rows[i].user_id)
console.log(" rows[i]['user_id'] " + rows[i]['user_id']);
console.log(rows[i]);
}
});
结果:
Connection established
[{"user_id":2}]
parsed [object Object]
row[0].user_id undefined
row.user_id undefined
rowParsed.user_id undefined
rowParsed['user_id'] undefined
rows[i].user_id undefined
rows[i]['user_id'] undefined
[ RowDataPacket { user_id: 2 } ]
POST /users/register 200 120.026 ms - 22