当mongo查询遇到错误时,如何终止循环?当前它通过并出现错误[ERR_HTTP_HEADERS_SENT]的错误:将标头发送到客户端后无法设置标头,因为循环,它一次又一次发送res.redirect('back')。
details.forEach(function(w){
let m
let part = w.part,
position = w.position,
company = w.company,
busNumber = bus,
_id = w.id,
mile_age = w.mile_age,
isDamaged = false;
let author = {
id: req.user._id,
username: req.user.username,
firstName: req.user.firstName,
lastName: req.user.lastName,
};
let image = {contentType: 'image/png', data: 'none'};
let date_now = new Date().addHours(8).toISOString();
let detail = {part:part,id:_id, position:position, company:company,isDamaged:isDamaged, mile_age: mile_age, author:author, busNumber:busNumber,image:image, date_created: date_now};
let id = {id: _id, busNumber: bus};
Bus.findOneAndUpdate(id, detail, function(err, a){
if(a === null || a === undefined || err){
req.flash('error', err)
res.redirect('back')
}else{
let trip = req.session.trip;
Trip.findById('5ed66aa024ce61001719b8ce', function(err, found){
if(found === null || found === undefined || err){
req.flash('error', err) // <==== error
res.redirect('back')
}else{
Raw_360.create(detail, function(err, raw){
if(raw === null || raw === undefined || err){
req.flash('error', err)
res.redirect('back')
}else{
found.start_360.push(raw)
found.save();
}
})// end of Raw_360
}
})
}
});
}) // end of for loop