Saya mencipta API untuk projek saya, tetapi saya mendapat ralat pada salah satu titik akhir yang tidak dapat saya betulkan.
const fullOrdersForService = service.totalOrders const updatedFullOrdersForService = fullOrdersForService + 1 const updateService = await Service.findOneAndUpdate({_id:serviceId}, { totalOrders: updatedFullOrdersForService },{new:true})
Benar-benar dalam kod di atas, saya telah menyemak bahawa service.totalOrders
的类型,输出为数字,而且service.totalOrders
berasal daripada corak, jadi tidak ada kemungkinan untuk menukar jenisnya kepada String atau NaN. Saya menyemak sama ada ia NaN dan hasilnya juga palsu, ia bukan NaN. Saya masih tertanya-tanya bagaimana ralat ini berlaku.
Tetapi ralat berikut berlaku.
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))
Corak Service.totalOrders
saya boleh lihat di bawah.
totalOrders:{ type:Number, required:true, default:0 }
Corak Seller.totalOrders
saya boleh lihat di bawah.
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})
Saya baru sahaja mencuba kod ini dan mendapat ralat yang saya nyatakan di atas.
Gunakan pertama
console.log(fullOrdersForService )
和console.log(updatedFullOrdersForService )
untuk menyemak sama ada ia adalah nombor atau rentetanJika dikemas kiniFullOrdersForService betul tetapi rentetan, gunakan sebelum kemas kini
parseInt(updatedFullOrdersForService )