17

高速でファイルを取得.jsonしてビューに表示する際に問題があります。あなたの例を教えてください。

4

3 に答える 3

32
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');
于 2012-10-31T19:50:39.573 に答える
28

コントローラーでこのようなことを行います。

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によると

これは機能しますが、require 呼び出しはキャッシュされ、後続の各呼び出しで同じオブジェクトが返されることに注意してください。サーバーの実行中に .json ファイルに加えた変更は、サーバーからの後続の応答には反映されません。

于 2016-03-16T09:19:04.077 に答える
14

これは私のために働いた。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);
});

ソース

于 2013-12-13T06:58:32.063 に答える