Come ottenere un file JSON express js e visualizzato in vista

Ho un problema nell’ottenere un file .json in express e visualizzato in una vista. Gentilmente condividi i tuoi esempi.

 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'); 

Fai qualcosa di simile nel tuo controller.

Per ottenere il contenuto del file JSON :

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

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

Per inviare il json alla tua vista:

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

Questo dovrebbe inviare il contenuto JSON alla tua vista tramite una richiesta.

NOTA

Secondo BTMPL

Mentre ciò funzionerà, prendere nota che le chiamate richiedono di essere memorizzate nella cache e restituiranno lo stesso object in ogni chiamata successiva. Qualsiasi modifica apportata al file .json quando il server è in esecuzione non si rifletterà nelle successive risposte dal server.

Questo ha funzionato per me. Usando il modulo 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); } }); } 

Uso:

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

fonte