转换错误 - 无法将值'NaN”(类型为数字)转换为数字,发生在路径'totalOrders”处
P粉493534105
P粉493534105 2023-09-08 17:39:12
0
1
502

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

全部回复(1)
P粉608647033

首先使用console.log(fullOrdersForService )console.log(updatedFullOrdersForService )来检查它是数字还是字符串

如果updatedFullOrdersForService是正确的但是是字符串,在更新之前使用parseInt(updatedFullOrdersForService )

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!