我正在使用NodeJS,我仍然熟悉它。
鉴于我的系统结构,我有两台运行在不同机器上的NodeJS服务器。 用户/浏览器向第一个服务器发送请求,该服务器向浏览器返回位于该第一个机器中的JSON文件。
第一台服务器还每5-10秒更新一次这个JSON文件,向第二台服务器发送请求,第二台服务器返回另一个JSON文件,该数据将覆盖第一台服务器中JSON文件中的数据,因此下一个用户/浏览器请求将会更新。 第二台服务器也运行NodeJS服务器,但它只调度来自第一台服务器的请求。
我有这种结构,因为我不希望用户出于安全原因知道第二台服务器(任何人都可以看到使用任何开发工具进行重定向)。
这两个事件是异步执行的,因为浏览器请求可能与更新JSON文件的事件处于不同的时间。
我的问题是:如何更新第一台服务器中的JSON文件?我想知道是否有一个NodeJS库我可以用来向第二台服务器请求新的JSON文件。
我通过AJAX进行Browser-FirstServer请求,一切正常,但AJAX只能在客户端工作,所以我不确定如何为第一秒服务器请求执行此操作。
任何帮助都将不胜感激。
我正在考虑的事情如下:
setInterval(function(){
// make request to server 2
//receive JSON file
// use 'fs' for overwriting the JSON from server 1
}, 5000)
答案 0 :(得分:1)
您可以在nodejs中使用内置的http / https模块,也可以使用request
之类的内容var request = require('request');
request('/url/for/json', function (error, response, body) {
if (!error && response.statusCode == 200) {
//write body to the file system
}
});
答案 1 :(得分:0)
我强烈建议使用套接字连接到第二个而不是作为web(html)服务器运行...这样,您可以在事件发生时来回传递信息/更改。 Here's an example of using sockets in node.js