[英]In Node.js, how do I make one server call a function on another server?
假设我有 2 个 Web 服务器。 他们都刚刚安装了 Node.js 并且正在运行一个网站(使用 Express)。 很基本的东西。
服务器-A 如何告诉服务器-B 执行一个函数? (在 node.js 中)
最好......是否有一个 npm 模块可以让我很容易?
查看Wildcard 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"
})();
您可以在此处浏览示例代码。
更新:我在下面制作和链接的库目前没有维护。 请查看此线程上的其他答案。
您需要的是 RPC。 可以构建自己的,但根据您需要的功能,这可能很耗时。
考虑到我必须投入的时间,我建议您找到一个适合您目的的体面库,而不是手动滚动。 我的用例需要额外的复杂功能,例如选择性 RPC 调用,为此我找不到任何足够轻量的功能,因此不得不自己动手。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.