我在nodejs中有代码:
app.post("/getServerDetails", function(req, res){
var id = req.body.id;
if (con == null)
con = db.openCon(con);
Promise.all([
new Promise((resolve, reject)=>{
con.query("select serverName from servers where id = ?", [id], function(err, result){
if(err){
resolve(null);
res.status(200).json({success: 0});
}
resolve(result);
});
})
])
.then((results)=>{
res.status(200).json(results[0]);
});
});
我在结果[0]中得到输出:
第一部分:[rowdatapacket{servername:'server1'},rowdatapacket{servername:'server2'},rowdatapacket{servername:'server3'},
rowdatapacket{servername:'server4'},rowdatapacket{servername:'server5'}]
实际上,我的代码运行得很好,但我需要这样的数组:
第二部分:[服务器1、服务器2、服务器3、服务器4、服务器5]
所以,伙计们,我可以像第二部分那样输出,而不是第一部分。其实我不明白我是怎么做到的。你的帮助我很感激。谢谢
1条答案
按热度按时间bbuxkriu1#
rowdatapacket表示对象是rowdatapacket类的示例。请随意将结果视为普通对象。
mysql api总是返回行/结果{array},因此您只需从结果[0]获取结果
您还可以跳过代码中回调和承诺的混乱。举个例子
裁判。https://www.bountysource.com/issues/5457730-using-node-mysql-with-promises