Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法将对象推入嵌套对象中的数组_Javascript_Node.js - Fatal编程技术网

Javascript 无法将对象推入嵌套对象中的数组

Javascript 无法将对象推入嵌套对象中的数组,javascript,node.js,Javascript,Node.js,这是一个错误,推送不是一个函数 req.User.messages.push(result) 这并没有显示任何错误,但在res.json()中给出null 您需要检查req.User.messages是否存在,以及它是否是一个数组 if (req.User.messages && Array.isArray(req.User.messages)) { req.User.messages.push(result) } else { req.User.messages =

这是一个错误,推送不是一个函数

req.User.messages.push(result)
这并没有显示任何错误,但在res.json()中给出null


您需要检查req.User.messages是否存在,以及它是否是一个数组

 if (req.User.messages && Array.isArray(req.User.messages)) {
  req.User.messages.push(result)
} else {
  req.User.messages = [result];
}

这样可以确保只将附加到数组

[req.User.messages].push(结果)

此代码不会对
req.User.messages
进行任何更改。相反,它创建另一个1元素数组并将结果推送到该数组

这并没有显示任何错误,但在res.json()中给出null

这意味着req.User.messages已为空


因此,您需要首先验证req.User.messages是否为有效数组。

您能
控制台.log(req.User)
吗?如果
推送
不是一个函数,那么
req.User.messages
就不是一个数组。不要用它来临时存储消息,从而污染
req
。相反,定义一个新的空数组来存储消息并返回它。对不起,您是正确的,req.User只提供id,没有messages,您是对的,req.User中没有消息。我必须使用req.User.\u id找到模型
 if (req.User.messages && Array.isArray(req.User.messages)) {
  req.User.messages.push(result)
} else {
  req.User.messages = [result];
}