繁体   English   中英

尽管应该动态发生,Node.js仅在服务器重启时重新加载json文件

[英]Node.js only reloads a json file on server restart although that should happen dynamically

我的ejs模板中有一个Post表单,该表单通过Ajax / post传递一个对象,而无需重新加载页面。 然后,我的app.js中的处理程序将数据保存到data.json中。 所有这一切都运行良好。

我唯一关心的是节点似乎只需要json文件一次,我已经尝试过使用setInterval()了,这一点都没有区别。 所需的功能是,在每隔一次提交表单后,服务器就会重新加载data.json。 此外,我有一个iframe,其中显示了已加载的数据。 这应该是即时发生的,因此无需刷新页面。

对于您上面的评论,套接字与它无关。

要回答您的问题,您可以将该JSON保留在内存中,将该对象创建为代码(文件)各部分均可访问的全局对象。

代码示例->

app.js-

global_json = require('../path/myJSON'); //please note that I am not using var here to make it global
//Rest of the code

file1.js-

module.exports = fun(req, res) {
    global_json.something = req.body.something;
//global_json accessible in every file
}

另类

如果这不是用例,那么您可以在每个请求中(从发布中)读取和写入文件,尽管文件读取/写入速度很慢,但是对于node.js服务器来说这不会成为瓶颈。

function formpost(req, res) {
var data = req.body;
fs.writeFile('filename.json', JSON.stringify(data), cb);
}

//与读取相同

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM