我为我的项目创建了一个API,但在一个端点中,发生了一个我无法修复的错误。
const fullOrdersForService = service.totalOrders
const updatedFullOrdersForService = fullOrdersForService + 1
const updateService = await Service.findOneAndUpdate({_id:serviceId}, { totalOrders: updatedFullOrdersForService },{new:true})
在上面的代码中,我检查了service.totalOrders
的类型及其输出作为数字,并且service.totalOrders
来自一个模式,因此没有任何可能将其类型更改为字符串或NaN。我检查了它是否是NaN,也是假的,它不是NaN。我仍然想知道那个错误是怎么发生的。但是出现了如下错误:
messageFormat: undefined, stringValue: '"NaN"', kind: 'Number', value: NaN, path: 'totalOrders', reason: AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: assert.ok(!isNaN(val))
我的Service.totalOrders
架构如下图所示。
totalOrders:{
type:Number,
required:true,
default:0
}
我的Seller.totalOrders
模式如下所示。
totalOrders:{
type:Number,
required:true,
default:0
}
const fullOrdersForService = service.totalOrders
const updatedFullOrdersForService = fullOrdersForService + 1
const updateService = await Service.findOneAndUpdate({_id:serviceId}, { totalOrders: updatedFullOrdersForService },{new:true})
我刚刚尝试了这段代码,出现了我上面提到的错误。
首先检查console.log(fullOrdersForService )
和console.log(updatedFullOrdersForService )
是否为数字,然后
如果updatedfulllordersforservice是正确的,但是字符串在更新之前使用parseInt(updatedFullOrdersForService )