我为我的项目创建了一个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})
我刚刚尝试了这段代码,出现了我上面提到的错误。
P粉6086470332023-09-09 13:46:39
首先使用console.log(fullOrdersForService )
和console.log(updatedFullOrdersForService )
来检查它是数字还是字符串
如果updatedFullOrdersForService是正确的但是是字符串,在更新之前使用parseInt(updatedFullOrdersForService )