我试图在 sql 模块中调用 sql 模块,并将第二级模块插入第一级模块数组,以便我可以获得结果。 但是我在输出中得到了空数组。
router.post('/mymsg', function(req, res, next) {
var rootmsgid = req.body.rootmsgid;
var request = new sql.Request()
.input('rootmsgid', sql.Int, rootmsgid)
.execute('sp_mymsg')
.then(function(val) {
var x = val.recordsets[0]
var z = [];
var y = [];
for (var i = 0; i < x.length; i++) {
var t1 = parseInt(x[i].msg_id)
var t2 = parseInt(x[i].sender_id)
var t3 = x[i].timestamp
var t4 = x[i].recipient
var t5 = x[i].subject
var t6 = x[i].body
var request = new sql.Request()
.input('msgid', sql.Int, t1)
.execute('filenamex')
.then(function( val) {
y = val.recordsets[0];
z.push({
"msg_id": t1,
"sender_id": t2,
"timestamp": t3,
"recipient": t4,
"subject": t5,
"body": t6,
"filename": y
})
console.log(z)
})
}
res.json(z)
})
.catch(function(err) {
console.log(err);
res.json({
msg: "Invalid Input",
success: false
});
res.end();
});
});
我试图在 sql 模块中调用 sql 模块,并将第二级模块插入第一级模块数组,以便我可以获得结果。 但是我在输出中得到了空数组。
最佳答案
欢迎使用异步编程:)
您的 res.json(z)
在 for 循环结束之前执行。
那就是你得到一个空数组。
使用async模块或者使用async/await来解析。
关于javascript - 无法在 res.json 中获得响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56131359/