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

345
Views
¿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 answers
Answer question

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 Report

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