首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在更改时重新加载Json文件

在更改时重新加载Json文件
EN

Stack Overflow用户
提问于 2016-07-14 02:15:30
回答 1查看 3.4K关注 0票数 1

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

Server.js

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
var users = require('../user-list.json');
router.get('/', function(req, res, next) {

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

Webpage.ejs:

代码语言:javascript
运行
复制
<% 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>
<% }%>

如果已经做了任何更改,我如何才能在网页中显示数据?我浏览了一段时间,没有发现任何有用的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-14 03:15:20

我相信问题是:

代码语言:javascript
运行
复制
var users = require('../user-list.json');

Node中的应用程序不会重新加载javascript源文件。反过来,源文件工作所需的任何内容都将以这种方式加载--仅在启动时。

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

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

代码语言:javascript
运行
复制
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
});
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38364464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档