我目前具有以下架构:
Schema({
_id: { type: Number, default: Math.floor(Date.now() / 1000) + 24 * 60 * 60 },
userID: { type: Number, require },
assignmentID: {
type: Number,
validate: {
validator: function (v) {
if (!v) {
Promise.reject(false);
}
else {
Assignment.findById(v, (assignmentErr, assignmentDoc) => {
if(assignmentErr || !assignmentDoc){
Promise.reject(false);
}
else{
Promise.resolve(true);
}
})
}
},
message: 'Invalid assignment ID.'
}
}
我面临的问题是我不断在控制台中收到警告,提示我没有处理被拒绝的承诺。即使诺言被拒绝,该文档也保存在数据库中。
我保存新文档的方式如下:
schema.save((err, savedDoc) => {
}
如何解决此问题,或者有没有更好的方法来进行类似的复杂验证?
答案 0 :(得分:1)
您可以尝试以下代码:
all_item=assets::all();
foreach($all_item as $item)
{
$month=Carbon::now()->format('m');
$depreciation_updated_at = createFromFormat('Y-m-d', $item->depreciation_updated_at); //or can use created_at/updated_at as said below
if ($depreciation_updated_at ->format('m') != $month) {
$update_item = assets::findOrFail($item->id);
$update_item->depriciation_cost = $item->depriciation - $item->depriciation_cost;
$update_item->update();
}
}
更新 您也可以尝试如下所示:
assignmentID: {
type: Number,
validate: {
validator: function (v) {
if (!v) {
return Promise.reject(false);
}
return Assignment.findById(v)
.then(assignmentDoc => {
if( !assignmentDoc){
return Promise.reject(false);
}
else{
return Promise.resolve(true);
}
})
.catch(error => {
return Promise.reject(error );
})
},
message: 'Invalid assignment ID.'
}
}