我拥有她的是这个
app.post('/login', function (req, res){
connection.connect();
email = req.body.email;
password = req.body.password;
if(email && password ) {
console.log(email);
console.log(password);
// connection.query('SELECT username FROM user WHERE email =? and password = ?', [email, password],
// function (error, rows, fields) {
connection.query('SELECT * FROM user ',
function (error, rows, fields) {
var str='';
for (var i = 0;i < rows.length; i++) {
str = str + rows[i].username;
res.end(str);
}
connection.end();
});
}
});
所以不是只显示结果,而是希望它是这样的:
{
"username": "ABC",
"username": "DEF",
"username": "HIJ"
}
答案 0 :(得分:8)
第一个问题是你实际上并没有构建你想要的对象。第二个问题是你没有构建它们的数组。最后,如果res
对象没有res.json
之类的内容,则需要将该数组转换为JSON。
var objs = [];
for (var i = 0;i < rows.length; i++) {
objs.push({username: rows[i].username});
}
connection.end();
res.end(JSON.stringify(objs));
答案 1 :(得分:-1)
使用Express 4.x,mysql 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();
});
});
&#13;
输出格式为
[ RowDataPacket {
id: 1,
username: 'shivkanth',
password: '1q2w3e4r',
verified: 0 } ]
&#13;
所以现在你可以使用了。运营商。例如,console.log(rows [0] .username)将记录值&#39; shivkanth&#39;