Saya memiliki masalah dalam mendapatkan file .json
di express dan menampilkannya dalam tampilan. Mohon berikan contohnya.
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');
Lakukan hal seperti ini pada controller Anda.
Untuk mendapatkan konten file json:
ES5
var foo = require('path/to/your/file.json');
ES6 *** IMPOR FILE FOO DARI ' FILE.JSON'.
impor foo dari '/path/to/your/file.json'
;
Untuk mengirimkan json** ke tampilan Anda:
function getJson(req, res, next){
res.send(foo);
}
Ini akan mengirimkan konten json ke tampilan Anda melalui permintaan.
CATATAN
Menurut BTMPL
Meskipun hal ini akan berhasil, harap diperhatikan bahwa pemanggilan yang membutuhkan di-cache dan akan mengembalikan objek yang sama pada setiap pemanggilan berikutnya. Perubahan apa pun yang Anda lakukan pada berkas .json saat server berjalan tidak akan tercermin dalam respons selanjutnya dari server.
Yang satu ini berhasil bagi saya. Menggunakan modul 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);
}
});
}
Penggunaan:
readJSONFile('../../data.json', function (err, json) {
if(err) { throw err; }
console.log(json);
});