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

mau*_*k13 3 api rest ipc node.js

我们的应用程序将有一个网站和一个移动应用程序都与相同的API后端进行通信.我有一个Nodejs应用程序只提供API,第二个Nodejs应用程序提供网站的html页面.我正在为这两个应用程序使用Expressjs Web框架.

从另一个Nodejs应用程序调用一个Nodejs中的API有哪些不同的方法?关于何时使用每种方法的其他信息将是很好的.

编辑:

例如,我有以下应用程序

  • NodejsAPI(节点和快递)
  • NodejsWebsite(节点和快递)
  • 移动应用

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

从IPC的角度思考我发现以下内容很有用,
什么是最有效的node.js进程间通信库/方法? https://www.npmjs.org/package/node-ipc

Far*_*hat 6

节点的vanilla http客户端,http客户端瑞士军刀,请求,然后有superagent,类似于jQuery.ajax.为了让你的生活更轻松,有扶手fementa,两种不同口味的同一件事.

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

  • dnode:最受欢迎的解决方案之一.这让事情变得非常简单.这使得无缝使用远程接口.phantomjs-node使用dnode.与其他对象相比,对大型对象的表现不佳.对于小东西,它是完美的.还有其他语言的其他端口.

  • zerorpc:使用zeromq作为它的可靠性而着名的套接字库.它也支持连接到python客户端.

  • smith:cloud9编辑器后端中使用的RPC系统.基本上和dnode一样好,但速度更快.smith和zerorpc都使用msgpack而不是JSON,因此它们将节省线路上的字节数.

  • axon-rpc:轻量级解决方案.很好用作zerorpc.您可以将其配置为使用带有axon-msgpack的msgpack.

以上所有内容都适用于TCP(用于不同的机器)或Unix域套接字(比TCP快,但只能在同一台机器上).

如果您想获得更高的性能,只需要它的接口模块就可以将NodejsAPI嵌入到NodejsWebsite中.

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