【问题标题】:NodeJS servers requestsNodeJS 服务器请求
【发布时间】:2014-08-27 01:18:11
【问题描述】:

我正在使用 NodeJS,并且我仍在熟悉它。

鉴于我的系统结构,我有两个 NodeJS 服务器在不同的机器上运行。 用户/浏览器向第一台服务器发送请求,该服务器向浏览器返回位于第一台机器中的 JSON 文件。

这第一台服务器也每 5-10 秒更新一次这个 JSON 文件,向第二台服务器发送一个请求,第二台服务器返回另一个 JSON 文件,该文件的数据将覆盖第一台服务器的 JSON 文件中的那个,所以下一个用户/浏览器请求将被更新。 这第二台服务器也有一个 NodeJS 服务器正在运行,但它只调度来自第一台服务器的请求。

我有这个结构是因为出于安全原因我不希望用户知道第二台服务器(任何人都可以使用任何开发工具看到重定向)。

这两个事件是异步执行的,因为浏览器请求可能与更新 JSON 文件的事件发生的时间不同。

我的问题是:如何更新第一台服务器中的 JSON 文件?我想知道是否有一个 NodeJS 库可用于向第二台服务器请求新的 JSON 文件。

我通过 AJAX 提出 Browser-FirstServer 请求,一切正常,但 AJAX 仅在客户端有效,所以我不确定如何为 First-Second 服务器请求执行此操作。

任何帮助将不胜感激。

我期待的是以下内容:

setInterval(function(){ 
// make request to server 2

//receive JSON file

// use 'fs' for overwriting the JSON from server 1

}, 5000)

【问题讨论】:

  • 你看过nodejs.org/api/http.html吗?
  • 看起来你想要一个简单的缓存代理服务器。
  • 我仍然没有任何关于处理更新的代码,因为我不完全知道如何从服务器 2 请求 JSON。

标签: javascript ajax node.js


【解决方案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
  }
});

【讨论】:

    【解决方案2】:

    我强烈建议不要同时作为 web (html) 服务器运行,而是使用套接字连接到第二个服务器...这样您就可以在事件发生时来回传递信息/更改。 Here's an example of using sockets in node.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-22
      • 2017-07-14
      • 1970-01-01
      • 2015-09-01
      • 2020-08-19
      • 2021-06-07
      相关资源
      最近更新 更多