Rumah  >  Soal Jawab  >  teks badan

Ralat penukaran - Tidak dapat menukar nilai 'NaN' (jenis Nombor) kepada Nombor, berlaku pada laluan 'totalOrders'

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.totalOrdersberasal 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.

P粉493534105P粉493534105381 hari yang lalu508

membalas semua(1)saya akan balas

  • P粉608647033

    P粉6086470332023-09-09 13:46:39

    Gunakan pertama console.log(fullOrdersForService )console.log(updatedFullOrdersForService ) untuk menyemak sama ada ia adalah nombor atau rentetan

    Jika dikemas kiniFullOrdersForService betul tetapi rentetan, gunakan sebelum kemas kiniparseInt(updatedFullOrdersForService )

    balas
    0
  • Batalbalas