我正尝试通过res.json()
通过Express发送json响应,但通过records
发送的对象中res.json()
的值为空。
我有这段代码:
stats.activities(params).then(res => {
processActivities(res, response => {
console.log(response); // => logs response properly
globalRes.json({
ok: true,
message: '',
records: response // response is an empty array
});
console.log(response); // => logs response properly
});
});
以下是我的console.logs()
:
[ players: [ [ [Object], [Object], [Object] ] ] ]
[ players: [ [ [Object], [Object], [Object] ] ] ]
以下是我要回复的回复(邮递员):
{
"ok": true,
"message": "",
"records": []
}
有什么可能导致这种情况的想法吗?
答案 0 :(得分:3)
这不是有效的数组:
[ players: [ [ [Object], [Object], [Object] ] ] ]
数组具有数字索引和长度。您的数组有一个名为player
的属性,在调用JSON.stringify
时会被忽略。
以下是展示问题的示例:
let a = [];
a.player = 'jack';
console.log(JSON.stringify(a)); // []
您可能想要一个对象:
let a = {};
a.player = 'jack';
console.log(JSON.stringify(a)); // {"player":"jack"}
答案 1 :(得分:0)
什么是globalRes?通常你应该使用一个响应变量,该变量由回调函数抓取。您可能尝试使用某种解决方法,并且可能在实际发送globalRes之后执行console.logs。
节点主要是异步的。始终牢记这一点。