从一个 Nodejs 应用程序调用另一个 Nodejs 应用程序中的 API 的方法

2024-04-27

我们的应用程序将有一个网站和一个移动应用程序,两者都与同一个 API 后端进行通信。我有一个仅提供 API 服务的 Nodejs 应用程序,还有一个为网站提供 html 页面服务的 Nodejs 应用程序。我正在为这两个应用程序使用 Expressjs Web 框架。

从一个 Nodejs 应用程序调用另一个 Nodejs 应用程序中的 API 有哪些不同的方法?有关何时使用每种方法的更多信息会很棒。

EDIT:

例子, 我有以下应用程序

  • NodejsAPI(节点和 Express)
  • NodejsWebsite(节点和express)
  • 移动应用

NodejsAPI 将提供对 MobileApp 和 NodejsWebsite 的 API 的访问。 MobileApp 将通过 http 访问 API。但我想知道 NodejsWebsite 在 NodejsAPI 应用程序中调用 API 的选项有哪些。据我了解,这将是两个进程之间的进程间通信。对于 .net 应用程序,此类通信可以使用 .net 管道、tcp 通信等来完成。unix 和 linux 平台上的 Nodejs 应用程序的等效方法是什么?

从 IPC 的角度思考,我发现以下内容很有用,
最有效的node.js进程间通信库/方法是什么? https://stackoverflow.com/questions/6463945/whats-the-most-efficient-node-js-inter-process-communication-library-method https://www.npmjs.org/package/node-ipc https://www.npmjs.org/package/node-ipc


There's Node 的普通 http 客户端 http://nodejs.org/api/all.html#all_http_request_options_callback, http客户端瑞士军刀,请求 https://github.com/mikeal/request,那么就有superagent,类似于 jQuery.ajax https://github.com/visionmedia/superagent。为了让您的生活更轻松,这里有armrest https://github.com/shutterstock/armrest and fementa https://github.com/natevw/fermata,同一种东西的两种不同味道。

现在,如果您想获得更高的性能并拥有应用程序的另一个接口,您可以使用以下 RPC 解决方案之一:

  • dnode https://github.com/substack/dnode:最受欢迎的解决方案之一。这让事情变得非常简单。它使得远程接口的使用变得无缝。phantomjs-节点 https://github.com/sgentle/phantomjs-node使用 dnode。与其他物体相比,在处理巨大物体时表现不佳。对于小东西来说,它是完美的。还有其他语言的其他端口。

  • zerorpc https://github.com/dotcloud/zerorpc-node: Uses zeromq http://zeromq.org/因为它的套接字库以可靠而闻名。它也支持连接到 python 客户端。

  • smith https://github.com/c9/smith:cloud9编辑器后端使用的RPC系统。基本上几乎和 dnode 一样好,但速度更快。 smith和zerorpc都使用msgpack http://msgpack.org/而不是 JSON,因此它们会节省线路​​上的字节。

  • axon-rpc https://github.com/visionmedia/axon-rpc:轻量级解决方案。和 Zerorpc 一样好用。您可以将其配置为使用 msgpack轴突消息包 https://github.com/visionmedia/axon-msgpack.

以上所有功能都可以在 TCP(在不同机器上使用)或 Unix Domain Sockets(比 TCP 更快,但只能在同一台机器上使用)上工作。

如果您想要更高的性能,您可以将 NodejsAPI 嵌入到您的 NodejsWebsite 中,只需简单地需要它的接口模块即可。

如果您想要比这更好的答案,请写一个更具体的问题。这个问题本身就太宽泛了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从一个 Nodejs 应用程序调用另一个 Nodejs 应用程序中的 API 的方法 的相关文章

随机推荐