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

349
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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