Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

359
Vistas
¿Cómo enviar datos leídos desde un archivo como respuesta desde una ruta expresa en NodeJS?

Tengo un archivo JSON en una carpeta local con una estructura como esta.

 { license: "abcd", name: "abcd", data: [ Array of JSON Objects .... ] }

Quiero acceder a la matriz de datos en el Objeto y enviarlo como respuesta desde la ruta expresa. Esto es lo que intenté.

 import express from "express"; import fs from "fs"; import bodyParser from "body-parser"; var app = express(); app.use(bodyParser.json()); var fileData: string = fs.readFileSync("path to json file", { encoding: 'utf-8' }); var jsonData = JSON.parse(fileData).data; console.log(jsonData); app.get("/getJsonData", (err, res) => { if (err) throw err; res.send(JSON.stringify(jsonData)); }); app.listen("3001", () => console.log("listening at 3001"));

Muestra el json correcto cuando lo registro fuera de la función de ruta rápida, pero dentro de la función la respuesta es [objeto Objeto] con el código de estado 500 (Error interno del servidor).

Probé el método asíncrono también

 var app = express(); app.use(bodyParser.json()); app.get("/getJsonData", (err, res) => { if (err) throw err; fs.readFile("path to json file", (fileErr, result) => { if(fileErr) throw fileErr; var jsonData = JSON.parse(result.toString()).data; res.json(jsonData); }); });

pero obtengo la misma respuesta que [object Object] y el código de estado 500. Intenté res.send(JSON.stringify(jsonData)) pero no sirvió. ¿Cómo puedo enviar los datos json que obtengo del archivo a la interfaz usando Express? por cierto, estoy usando TypeScript para esto.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esta línea

 app.get("/getJsonData", (err, res) =>

El err no es un error, es la solicitud que debería ser:

 app.get("/getJsonData", (req, res) => { res.send(JSON.stringify(jsonData)); });

Está literalmente en el ejemplo del sitio Hello world de express.js, allí verá que usan req

https://expressjs.com/de/starter/hola-mundo.html

La razón por la que siempre obtienes un error 500 es porque err , que obviamente es la solicitud, siempre es veraz.

Tampoco necesita Stringificarlo, solo puede hacer res.json(jsonData)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si desea enviar un objeto json entre su servidor Express y el cliente, deberá enviar los datos a través de res.json(obj) donde obj debe ser explícitamente un objeto JSON (no puede ser una matriz de objetos JSON) . Lo que puede hacer para enviar la matriz es simplemente envolver su matriz jsonData dentro de un par de corchetes y listo.

 let jsonData = JSON.parse(fileData).data; res.json({ jsonData }); //or if you dont understand the above use res.json({ jsonData: jsonData}) //which is equivalent to the above line
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda