I have a JSON file in local folder with a structure like this.
{
license: "abcd",
name: "abcd",
data: [
Array of JSON Objects ....
]
}
I want to access the data array in the Object and send it as response from express route
This is what I tried.
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"));
It shows correct json when I log it outside the express route function, but inside the function the response is [object Object] with status code of 500 (Internal Server Error).
I tried the asynchronous method also
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);
});
});
but I get the same response as [object Object] and status code 500.
I tried res.send(JSON.stringify(jsonData))
but no use.
How can I send the json data that I get from file to frontend using Express??
btw I am using TypeScript for this.