Как получить json файл в express js и отобразить в поле зрения

У меня есть проблема с получением файла .json в выражении и отображения в представлении. Пожалуйста, поделитесь своими примерами.

Ответ 1

var fs = require("fs"),
    json;

function readJsonFileSync(filepath, encoding){

    if (typeof (encoding) == 'undefined'){
        encoding = 'utf8';
    }
    var file = fs.readFileSync(filepath, encoding);
    return JSON.parse(file);
}

function getConfig(file){

    var filepath = __dirname + '/' + file;
    return readJsonFileSync(filepath);
}

//assume that config.json is in application root

json = getConfig('config.json');

Ответ 2

Сделайте что-то подобное в своем контроллере.

Чтобы получить содержимое json- файла:

ES5 var foo = require('path/to/your/file.json');

ES6 import foo from '/path/to/your/file.json';

Чтобы отправить json на ваш взгляд:

function getJson(req, res, next){
    res.send(foo);
}

Это должно отправить json- контент на ваше мнение по запросу.

ЗАМЕТКА

Согласно BTMPL

В то время как это будет работать, обратите внимание на то, что требуемые вызовы кэшируются и возвращают один и тот же объект при каждом последующем вызове. Любые изменения, внесенные в файл.json при запуске сервера, не будут отражены в последующих ответах с сервера.

Ответ 3

Этот работал для меня. Использование модуля fs:

var fs = require('fs');

function readJSONFile(filename, callback) {
  fs.readFile(filename, function (err, data) {
    if(err) {
      callback(err);
      return;
    }
    try {
      callback(null, JSON.parse(data));
    } catch(exception) {
      callback(exception);
    }
  });
}

Применение:

readJSONFile('../../data.json', function (err, json) {
  if(err) { throw err; }
  console.log(json);
});

Источник