在 Node.js 中,如何让一个服务器调用另一个服务器上的函数
In Node.js, how do I make one server call a function on another server?
假设我有 2 台 Web 服务器。他们俩都刚刚安装了Node.js并且正在运行一个网站(使用Express)。 非常基本的东西。
服务器 A 如何告诉服务器 B 执行函数?(节点内.js)
宁愿。。。有没有一个 npm 模块让我很容易?
服务器 A 如何告诉服务器 B 执行函数?
您可以使用其中一个 RPC 模块,例如 dnode。
查看通配符API,它是JavaScript的RPC实现。
它在浏览器和 Node.js 服务器之间工作,也可以在多个 Node.js 进程之间工作:
// Node.js process 1
const express = require('express');
const wildcardMiddleware = require('@wildcard-api/server/express');
const {endpoints} = require('@wildcard-api/server');
endpoints.hello = async function() {
const msg = 'Hello from process 1';
return msg;
};
const app = express();
app.use(wildcardMiddleware());
app.listen(3000);
// Node.js process 2
const wildcard = require('@wildcard-api/client');
const {endpoints} = require('@wildcard-api/client');
wildcard.serverUrl = 'http://localhost:3000';
(async () => {
const msg = await endpoints.hello();
console.log(msg); // Prints "Hello from process 1"
})();
您可以在此处浏览示例的代码。
你很可能想要一个像 Node 的 JSON-RPC 模块这样的东西。经过一些快速搜索,这里有一个用于Connect的JSON-RPC中间件模块,非常适合与Express一起使用。
此外,这个看起来也很有前途。
更新:我在下面制作和链接的库目前没有维护。请查看此线程上的其他答案。
<小时 />您需要的称为 RPC。可以构建自己的,但根据您需要的功能,这可能很耗时。
考虑到我必须投入的时间,我建议找到一个适合您目的的体面库,而不是手卷。我的用例需要额外的复杂功能,例如选择性 RPC 调用,我找不到足够轻量级的东西,所以不得不自己推出。
这是 https://github.com/DhavalW/octopus。
相关文章:
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 在node.js中从设备向服务器发送一个多部分请求
- Javascript/web-dev:为什么你需要一个服务器来连接硬件
- PhantomJS与嵌入式web服务器只使用一个CPU
- 新的会话cookie直到下一个服务器请求才提供
- 如何上传一个XML对象并用Perl将其保存在服务器上
- 在服务器上创建一个复选框,使用 javascript 处理函数
- 两个服务器可以访问一个公共的mongoDB数据库吗?
- Node.js:如何在服务器初始化时运行一个特殊的函数
- 在不重新加载页面的情况下,从JSP(服务器端)b设置一个JavaScript变量
- 我上传了客户's服务器一个js函数不起作用
- Nodejs:在节点服务器启动时运行一个js文件
- 我需要一个注册按钮,它可以将数据发送到mySQL服务器,也可以在单击时重定向
- 我的联系表格在测试/PHPMailer后给了我一个内部服务器错误(500)
- 如何在我的服务器上创建javascript,该服务器使用该服务器上的后端,并将在另一个网站上使用
- 我正在用apachecordova开发一个应用程序,但每次我向局域网上的服务器发出ajax请求时,我都会收到这个错误
- 将服务器的json响应克隆到另一个变量中
- 说明Node.js项目:是否只有一个"服务器文件“;在node.js中
- jQuery mobile:在页面导航期间,当建立服务器连接时,下一个页面的样式将应用于当前页面
- Javascript 更改服务器给我的时间以匹配另一个时区