使用Expressjs将JSON数据呈现到ejs视图上
我试图从网页上的JSON文件中获取2个值。 obj[“水果”]和obj[“甲状腺”]。我使用ejs作为模板视图引擎和expressjs 下面的方法表示“水果”和“甲状腺”未定义。但是console.log可以工作使用Expressjs将JSON数据呈现到ejs视图上,json,node.js,express,render,Json,Node.js,Express,Render,我试图从网页上的JSON文件中获取2个值。 obj[“水果”]和obj[“甲状腺”]。我使用ejs作为模板视图引擎和expressjs 下面的方法表示“水果”和“甲状腺”未定义。但是console.log可以工作 app.post('/top', function (req, res) { var obj; fs.readFile('./object.json', 'utf8', function (err, data) { if (err) throw err;
app.post('/top', function (req, res) {
var obj;
fs.readFile('./object.json', 'utf8', function (err, data) {
if (err) throw err;
obj = JSON.parse(data);
console.log(obj["fruit"]);
console.log(obj["thyroid"]);
});
res.render(
'disp.ejs',
{
food: obj["fruit"]
name: obj["thyroid"]
}); // render
});
(路径[,选项],回调)是读取文件的异步方式。代码的读取方式设置节点将开始读取文件,然后在文件数据
读取完成之前立即调用res.render
如果将res.render放在回调函数中,则仅当文件读取完毕且data
变量满足您的需要时才会调用它
例如:
app.post('/top', function (req, res) {
var obj;
fs.readFile('./object.json', 'utf8', function (err, data) {
if (err) throw err;
obj = JSON.parse(data);
console.log(obj["fruit"]);
console.log(obj["thyroid"]);
res.render(
'disp.ejs',
{
food: obj["fruit"]
name: obj["thyroid"]
}); // render
});
});
readFile是一个异步操作,请将res.render代码放入fs.readFile的函数回调中