Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

277
Visualizações
Problemas al acceder a los valores en nodejs pasados desde el lado del cliente

desde el lado del cliente estoy pasando esta matriz de elementos

 { id: '1', quantity: '1' } { id: '2', quantity: '1' }

como se muestra a continuación

 # Javascript fetch("/purchase", { method: "POST", headers: { "Content-Type": "application/json", Accept: "application/json", }, body: JSON.stringify({ items: items, }), })

En el lado del servidor, accedo al item.id que se pasa desde el lado del cliente y mapeo el valor correspondiente en la matriz storeItems, pero aquí estoy sin definir.

 # Nodejs const storeItems = new Map([ [1, { price: 10000, name: "Assessment" }], [2, { price: 20000, name: "Therapy" }], ]) app.post("/purchase", (req, res) => { req.body.items.forEach(function(item){ console.log(item.id) //this works const storeItem = storeItems.get(item.id) console.log(storeItem) //getting undefined }) })
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Esto se debe a que item.id contiene una cadena y pasar, por ejemplo, "1" al método get dará como resultado undefined ya que las claves del mapa son del tipo Number . Para solucionar esto, puede convertir la cadena en un número o almacenar los identificadores de elementos como una cadena en lugar de un número:

 const storeItem = storeItems.get(Number.parseInt(item.id));

O

 const storeItems = new Map([ ["1", { price: 10000, name: "Assessment" }], ["2", { price: 20000, name: "Therapy" }], ])
about 4 years ago · Juan Pablo Isaza Relatório

0

en su lado del cliente, está pasando la id de los elementos como una cadena

 { id: '1', quantity: '1' } { id: '2', quantity: '1' }

pero en el mapa node.js define el mapa como integer

 const storeItems = new Map([ [1, { price: 10000, name: "Assessment" }], [2, { price: 20000, name: "Therapy" }], ])

hay alguna solución, convertir id a entero en

 const storeItem = storeItems.get(item.id)

y convertir item.id a Integer

 const storeItem = storeItems.get(parseInt(item.id))

y el resultado final de su nodo js será así:

 # Nodejs const storeItems = new Map([ [1, { price: 10000, name: "Assessment" }], [2, { price: 20000, name: "Therapy" }], ]) app.post("/purchase", (req, res) => { req.body.items.forEach(function(item){ console.log(item.id) //this works const storeItem = storeItems.get(parseInt(item.id)) //// change this line console.log(storeItem) //getting undefined }) })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda