我有以下的邮政路线:
app.post("/respostaAprovChamado", function(req, res){
if(req.isAuthenticated()){
for(let i = 0; i < req.body.indiceAprov; i++){
Chamado.updateMany(
{"_id": req.body.idChamadoPost, ["listaAprovadores." + i + ".nome"]: req.user.realNome},
{
$set: {["listaAprovadores." + i]: [{nome: req.user.realNome}, {status: req.body.respostaAprov}]}
},
{
returnNewDocument: true
}
, function( error, result){
if(error){
res.send(error)
} else{
res.redirect('/aprovChamados')
}
})};
}else{
res.redirect('/login')
}
})
由于for()循环多次尝试重定向,因此出现以下错误:
错误[错误_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头
路由工作。更新是在数据库中进行的,但由于这个错误,我每次都需要重新启动节点。我需要for()循环来迭代“listaAprovadores”数组中的对象。
也许异步函数可以,但是我对JavaScript和Node还不熟悉,我能做些什么呢?
1条答案
按热度按时间2lpgd9681#
代码问题
1-如果要使用
updateMany
更新一个元素,请使用updateOne
2-尝试在不正确的for循环中发送响应
3-建议:不要使用promises或async/await(promises另一种语法)回调
请尝试以下操作
或使用async/await