错误 -- 路径 "totalOrders" 处的值 "NaN"(类型编号)的"强制转换为数字"失败



我为我的项目创建了一个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 )

相关内容

  • 没有找到相关文章

最新更新