使用Expressjs将JSON数据渲染到ejs视图中

时间:2017-10-26 23:11:46

标签: json node.js express render

我正在尝试从JSON文件中获取2个值到网页上。 obj ["水果"]和obj ["甲状腺"]。我使用ejs作为模板视图引擎和expressjs。

以下方法说"水果"和#34;甲状腺"未定义。 console.log虽然有效。

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

1 个答案:

答案 0 :(得分:1)

fs.readFile(path [,options],callback)是读取文件的异步方式。代码设置节点的方式将开始读取文件,然后在文件Array.prototype.insertionSort = function() { var A = this; var time = 0; var n = A.length; for (var i = 1; i < n; i++) { var v = A[i]; var j = i-1; while (j >= 0 && A[j] > v) { A[j+1] = A[j]; j--; var temp = new Array(this); setTimeout(callback(JSON.stringify(temp)), 500*(time++)); } A[j+1] = v; var temp = new Array(this); setTimeout(callback(JSON.stringify(temp)), 500*(time++)); } return time; } 完成读取之前立即调用res.render。

如果你把res.render放在回调函数中,它只会在文件读完后调用,并且data变量符合你的需要。

例如:

data