У меня есть проблема с получением файла .json
в выражении и отображения в представлении. Пожалуйста, поделитесь своими примерами.
Как получить json файл в express js и отобразить в поле зрения
Ответ 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);
});