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

我为我的项目创建了一个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学习者快速成长!