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];
}