Как прочитать содержимое файла в Node.js и преобразовать данные в JSON? - PullRequest
2 голосов
/ 05 апреля 2019

Я пытаюсь отправить данные из файла .json в ответ на Node.js.Я довольно новичок в этом, и я не знаю, как обращаться с буфером.

Это то, что я сделал:

const express = require('express');
const fs = require('fs');

const path = require('path');
const bodyParser = require('body-parser');

const app = express();

const port = 3000;

app.use(bodyParser.urlencoded({extended: false}));

app.use('/', (req, res, next) => {
    fs.readFile(path.join(__dirname, 'data', 'filename.json'), (err, content) => {
        res.send(JSON.stringify(content));
    })
});

app.listen(port, () => {
    console.log(`server is running on port: ${port}`)
});

Я ожидаю получить данные в формате JSON, но получаю буфер или просто числа.Я думаю, что я не понимаю некоторые концепции правильно.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Сохраните буфер в переменную, а затем используйте метод toString() и укажите, что JSON.parse

0 голосов
/ 05 апреля 2019

Что вы хотите сделать, это указать кодировку следующим образом:

fs.readFile(path.join(__dirname, 'data', 'filename.json'), 'utf8', (err, content) => {
        res.setHeader('Content-Type', 'application/json');
        res.send(content); // content will be a string
    })

В противном случае в соответствии с документацией вы получите буфер.

...