我仍然遇到條件和數據庫回調的問題,我寫了一個路由功能,查詢違規對象,這是從客戶端填寫的表單。我試圖將擁有此違規行爲的用戶作爲選項進行更改,然後查詢該用戶並將其正確返回,但是在if語句中,由於我如何編寫此內容,x!= y將始終返回true。我希望它完成查詢,然後點擊條件。我覺得如何解決這個問題一直存在。NodeJS MongoDB回調地獄
if(viol.user != user[0]._id)
當我編輯誰擁有該違規或對象,用戶沒有相同的對象翻來覆去添加到自己的用戶的方式。
app.post('/singleViolation/:violation', isAdmin, function(req, res) {
var violation = req.params.violation;
Violation.findById(violation, function(err, viol){
if (err) throw err;
if (req.body.cause === '') {
req.body.cause = viol.cause;
}
if (req.body.date === '') {
req.body.date = viol.date;
}
if (req.body.location === '') {
req.body.location = viol.location;
}
if(req.body.email === '') {
req.body.email == viol.user;
}
if(req.body.email != '') {
User.find({"local.email" : req.body.email}, function (err, user) {
if (err) {
req.body.email = viol.user;
}
if(viol.user != user[0]._id) {
typeof viol.user;
typeof user[0].id;
console.log(viol.user);
console.log(user[0]._id);
console.log(viol.user === user[0].id);
viol.user = user[0];
viol.save();
user[0].local.violations.push(viol);
Vehicles.findById(viol.vehicle, function(err, veh) {
user[0].local.vehicles.push(veh);
veh.owner = user[0];
veh.save();
user[0].save();
});
}
});
}
viol.cause = req.body.cause;
viol.date = req.body.date;
viol.location = req.body.location;
viol.save();
});
res.json(req.body);
});
app.get('/editViolations/:violations', isAdmin, function(req, res) {
res.render('editViolations.ejs');
});