虽然可以遍历数组并使用findoneandupdate来查找集合并更新数据,但是每次出现错误或null值时,它都会进入循环,有人可以在这里帮助我,我只想显示错误或出现空值消息。
下面是我的API代码示例,请有人可以帮助我。
api.route('/sendmyVehicle')
.post(function(req,res){
var j=0;
async.whilst(
function() { return j < req.body.length; },
function(callback) {
var myObj= {};
VehicleMaster.findOneAndUpdate({ _id: req.body[j] },{IsFavourite:false,RegisterUserId:transferingToUserData._id},function(err,vcdata) {
if (err) {
dataErr.push(err.message);
callback(err);
return
}
if(vcdata==null){
dataErr.push('Invalid Vehicle');
callback();
return
}
VehicleOdoMeterMaster.findOneAndUpdate({ VehicleId: vcdata._id },{RegisterUserId:transferingToUserData._id},function(err,VehicleOdoMeterMasterdata) {
if (err) {
dataErr.push(err.message);
callback(err);return
}
Product.findOneAndUpdate({vehicleNo:vcdata.Vehicle_No},{RegisterUserId:transferingToUserData._id},function(err,productTransfer){
if (err) {
dataErr.push(err.message);
callback(err);return
}
if(productTransfer!=null){
AssignUserProductQR.findOneAndUpdate({"ProductQRCodeId":productTransfer._id},{RegisterUserId:transferingToUserData._id}, {new : true},function(err,userQrData){
if (err) {
dataErr.push(err.message);
callback(err);return
}
})
}
})
data0.push(vcdata,VehicleOdoMeterMasterdata);
})
j++;
callback();
}
);
},function(err) {
if (dataErr.length!=0){
res.json({
success:false,
data:dataErr,
message: 'Error Occurred while transfer',
errorCode:null
});
console.log(err);
return
}
if(data0.length==0){
res.json({
success:false,
data:dataErr,
message: 'Error Occurred while transfer',
errorCode:null
});
}else{
res.json({
success:true,
data:data0,
message: "Vehicle Transfered Successfully",
errorCode:null
});
return
}
}
);
})