Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

143
Views
Problemas al analizar objetos de una matriz JSON en un objeto

primera pregunta que publico aquí. Estoy aprendiendo js y tratando de hacer algunas API para un proyecto universitario. Tengo el cuerpo de la API que pasa un objeto JSON así:

 [ { "id":1, "issueDate":"2021/11/29 09:33", "state": "DELIVERED", "products": [{"SKUId":12,"description":"a product","price":10.99,"qty":30}, {"SKUId":180,"description":"another product","price":11.99,"qty":20},...], "supplierId" : 1, "transportNote":{"deliveryDate":"2021/12/29"}, "skuItems" : [{"SKUId":12,"rfid":"12345678901234567890123456789016"},{"SKUId":12,"rfid":"12345678901234567890123456789017"},...] }, ... ]

Tengo problemas para analizar productos en una matriz de objetos de productos.

 class Product { constructor(SKUId,description,price, qty,) { this.id = id; this.price = price; this.SKUId = SKUId; this.qty = qty; this.description = description; }; } module.exports = Product;

Y al final este es el código que uso para el análisis:

 try { if (Object.keys(req.body).length === 0) { return res.status(422).json({ error: `Empty body request` }).end(); } if (!validate_date(req.body.issueDate) ){ return res.status(422).json({ error:`Issue Date Not Valid ` }).end(); } if (req.body.products === undefined) return res.status(422).json({ error: `Products not defined in the call` }).end(); if (req.body.supplierId === undefined) return res.status(422).json({ error: `SupplierId Not defined` }).end(); let lastID = await db.getLastIdFromTable('RestockOrder'); let trID = incrementID(lastID); let order = new Restock_order(trID, req.body.issueDate, "ISSUED", req.body.supplierId, undefined); await db.createRestockOrder(order); //THIS IS THE LINE OF THE CODE THAT DOESNT WORK const products = req.body.products.map((x) => new Product(x.SKUId, x.description, x.price, x.qty)); order.addProducts(products); products.forEach(async (x) => await db.addProductToSKURestockTable(x)); return res.status(200).end(); }

Después del comando const products = req.body.products.map((x) => new Product(x.SKUId, x.description, x.price, x.qty)); el código lanza una excepción (atrapada en un bloque try-catch) y no sé cuál es el problema real en el análisis. Gracias a todos los que me ayuden a solucionar esto

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

su producto de clase no es válido y el constructor debe comenzar desde el parámetro id

 const products = req.body.products.map((x) => new Product(x.id,x.SKUId,... and so on class Product { id: number; price: number; qty: number; description: string; SKUId:number; constructor(id:number,SKUId:number,description:string,price:number, qty:number) { this.id = id; this.price = price; this.SKUId = SKUId; this.qty = qty; this.description = description; }; }
about 4 years ago · Juan Pablo Isaza Report

0

Cuando llama a request.body, ya está en la matriz, por lo que no es necesario agregar la parte .products

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!