我不明白为什么我无法显示我的json数据。我是javascript的新手,我想将json文件中的数据显示到我的索引文件中。
我已经将快速生成器用于所有文件。我确实读过我应该在我的app.js中添加这个FS代码,但我不能在我的视图中使用我的索引文件中的数据变量。有什么帮助吗?
var express = require('express');
var router = express.Router();
var fs = require('fs');
/* GET home page. */
router.get('/', function(req, res, next) {
var file = __dirname + '/public/list/list.json';
var data;
fs.readFile(file, 'utf8', function (err, data) {
if (err) {
console.log('Error: ' + err);
return;
}
data = JSON.parse(data);
console.log(data);
});
res.render('index', { title: data });
console.log(data);
});
module.exports = router;
这是我的json文件
{
"username":"xyz",
"password":"xyz@123",
"email":"xyz@xyz.com",
"uid": 1100
}
答案 0 :(得分:2)
fs.readFile是异步的,所以你应该把res.render(..)放在他的回调中,因为它会在readFile函数结束时触发。所以将代码更改为:
this.selectedItems = [];
答案 1 :(得分:0)
上述答案是正确的,但也有另一种选择。
如果您将此文件用于索引页面,则会被大量使用。如果数据没有变化,您只需在代码顶部require
JSON文件并在请求中返回。
var express = require('express');
var router = express.Router();
var list = require(__dirname + '/public/list/list.json');
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: list });
});
module.exports = router;
但是,如果该数据经常发生变化,那么阅读该文件即可。