我在快递中获取.json
文件并在视图中显示时遇到问题。请分享您的例子。
答案 0 :(得分:28)
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');
答案 1 :(得分:20)
在你的控制器中执行类似的操作。
获取 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文件所做的任何更改都不会反映在服务器的后续响应中。
答案 2 :(得分:13)
这个对我有用。使用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);
});