Javascript 更改时重新加载Json文件

Javascript 更改时重新加载Json文件,javascript,json,node.js,Javascript,Json,Node.js,我正在使用Nodejs Express。我正在尝试将数据库中的用户列表显示到网页中。因此,我创建了一个中间json文件来存储所有用户详细信息,然后使用它显示在网页中。服务器端代码会在任何新条目或删除时更新json文件和数据库,但数据不会反映在网页中。一旦我重新启动服务器,它就会被反映出来 Server.js app.post('/add', function (req, res) { new employee({ id : req.body.id, firstName :

我正在使用Nodejs Express。我正在尝试将数据库中的用户列表显示到网页中。因此,我创建了一个中间json文件来存储所有用户详细信息,然后使用它显示在网页中。服务器端代码会在任何新条目或删除时更新json文件和数据库,但数据不会反映在网页中。一旦我重新启动服务器,它就会被反映出来

Server.js

app.post('/add', function (req, res) {
new employee({
    id    : req.body.id,
    firstName : req.body.firstName,
    lastName : req.body.lastName,
    emailId    : req.body.emailId
}).save( function ( err, employee, count ){
    if( err ) return next( err );
});
var db = new json("user-list",true,false);  
var count = db.getData('/count');

//console.log(result[item].firstName)
db.push('/user/'+count+'/firstName',req.body.firstName);
db.push('/user/'+count+'/lastName',req.body.lastName);
db.push('/user/'+count+'/emailId',req.body.emailId);
db.push('/user/'+count+'/id',req.body.id)
db.push('/count',count+1);
db.save();
db.reload();
res.redirect( '/Webpage' );
});
Webpage.js

var users = require('../user-list.json');
router.get('/', function(req, res, next) {

res.render('Webpage', {
    title: 'Express' ,
    user : users.user
});
});
Webpage.ejs:

<% for(var item in user) { %>
    <tr>
    <td><%= user[item].id %></td>
    <td><%= user[item].firstName %></td>
    <td><%= user[item].lastName %></td>
    <td><%= user[item].emailId %></td>
    <td>
    <span onclick="editUser()" class="glyphicon glyphicon-edit"></span>
    <span onclick="deleteUser(<%= user[item].id %>)" class="glyphicon glyphicon-remove"></span>
    </td>
    </tr>
<% }%>


如果进行了任何更改,如何获取网页中显示的数据?我浏览了一段时间,没有发现任何有用的信息。

我认为问题在于:

var users = require('../user-list.json');
节点中的应用程序不会重新加载javascript源文件。反过来,源文件工作所需的任何内容都将以这种方式加载—仅在启动时加载

为了按照请求读取文件,您需要手动读取
router.get('/',function(req,res,next){…})
中的文件(使用节点中的file IO命令)——因为这是每页加载运行的代码,而不是上面的代码

所以Webpage.js应该是这样的:

var fs = require('fs'); // new
router.get('/', function(req, res, next) {
var users = JSON.parse(fs.readFileSync('../user-list.json', 'utf8'));
res.render('Webpage', {
    title: 'Express' ,
    user : users.user
});
});

应用程序是仅在启动时读取文件,还是根据(相关)页面请求读取文件?我认为它仅在启动时读取文件,然后为将来的请求获取相同的文件。“…然后为将来的请求获取相同的文件”-如果可能,您能否在问题中添加相关代码,以便其他人可以检查文件是如何加载的以及为什么不更新?