【发布时间】:2014-07-13 17:28:36
【问题描述】:
我们的应用程序将有一个网站和一个移动应用程序,它们都与同一个 API 后端进行通信。我有一个仅提供 API 的 Nodejs 应用程序和另一个为网站提供 html 页面的 Nodejs 应用程序。我正在为这两个应用程序使用 Expressjs Web 框架。
从另一个 Nodejs 应用程序调用一个 Nodejs 中的 API 有哪些不同的方法?关于何时使用每种方法的附加信息会很棒。
编辑:
例如, 我有以下应用程序
- NodejsAPI(节点和快递)
- NodejsWebsite(节点和快递)
- 移动应用
NodejsAPI 将为 MobileApp 和 NodejsWebsite 提供对 API 的访问。 MobileApp 将通过 http 访问 API。但我想知道 NodejsWebsite 在 NodejsAPI 应用程序中调用 API 的选项是什么。据我了解,这将是两个进程之间的进程间通信。对于 .net 应用程序,可以使用 .net 管道、tcp 通信等进行此类通信。在 unix 和 linux 平台上,Nodejs 应用程序的等效方法是什么?
从 IPC 的角度思考,我发现以下内容很有用,
What's the most efficient node.js inter-process communication library/method?
https://www.npmjs.org/package/node-ipc
【问题讨论】:
-
您有什么理由不选择更有效的方式吗?网站是在服务器端呈现的(例如 Jade 模板)还是单页 Web 应用程序(AngularJS、jQuery、Backbone、Ember.js...)?
-
它不是 SPA 网站。它将通过服务器端的一些模板系统呈现。关键是要将 API 开发与网站开发分开,因此需要两个单独的 nodejs 应用程序。
-
在这种情况下,您仍然可以对同一个应用进行单独开发,只需使用正确的工具即可。
-
@Zlatko 忘记扩展分离部分。我的意思不仅仅是单独的开发,而且它们将是具有自己的存储库的单独项目,版本和部署也不同。
-
但这仍然可行,具体取决于您的用例。假设您将 API 部分开发为一个库。然后,您必须开发您的 web 应用程序并简单地将 api 作为另一个模块包含在 git subrepo 或 npm 或类似的东西中。但当然,在某些情况下,由于其他问题,您实际上需要分离代码。我只是说有这种可能性。