Maison  >  Questions et réponses  >  le corps du texte

Erreur de conversion – Impossible de convertir la valeur « NaN » (type Number) en Number, survenue au chemin « totalOrders »

J'ai créé une API pour mon projet, mais j'ai eu une erreur sur l'un des points de terminaison que je ne parviens pas à corriger.

const fullOrdersForService = service.totalOrders
const updatedFullOrdersForService = fullOrdersForService + 1
const updateService = await Service.findOneAndUpdate({_id:serviceId}, { totalOrders: updatedFullOrdersForService },{new:true})

Absolument dans le code ci-dessus, j'ai vérifié que service.totalOrders的类型,输出为数字,而且service.totalOrdersprovient d'un motif, il n'y a donc aucune possibilité de changer son type en String ou NaN. J'ai vérifié si c'est NaN et le résultat est également faux, ce n'est pas NaN. Je me demande toujours comment cette erreur se produit. Mais l'erreur suivante s'est produite.

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))

Mon Service.totalOrders modèle peut être vu ci-dessous.

totalOrders:{
  type:Number,
  required:true,
  default:0
}

Mon Seller.totalOrders modèle peut être vu ci-dessous.

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})

Je viens d'essayer ce code et j'ai obtenu l'erreur que j'ai mentionnée ci-dessus.

P粉493534105P粉493534105430 Il y a quelques jours534

répondre à tous(1)je répondrai

  • P粉608647033

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

    Utilisez d'abord console.log(fullOrdersForService )console.log(updatedFullOrdersForService ) pour vérifier s'il s'agit d'un nombre ou d'une chaîne

    Si la mise à jourFullOrdersForService est correcte mais une chaîne, utilisez-la avant la mise à jourparseInt(updatedFullOrdersForService )

    répondre
    0
  • Annulerrépondre