我为我的项目创建了一个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,结果也为false,它不是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})
我刚刚尝试了这段代码,出现了我上面提到的错误。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
首先使用
console.log(fullOrdersForService )和console.log(updatedFullOrdersForService )来检查它是数字还是字符串如果updatedFullOrdersForService是正确的但是是字符串,在更新之前使用
parseInt(updatedFullOrdersForService )