angular 2和express 4组合在一个node.js服务器下

目前我的testing应用程序是这样configuration的。

WebAPI负责

  1. 从客户端应用程序请求
  2. 与MongoDB进行通信
  3. 发送回应。

它使用Node.js作为Web服务器,表示4作为后端路由框架。

ClientApp是基于Angular2的前端应用程序,并且使用另一个Node.js实例作为Web服务器,而不使用Express 4.它不使用Express,因为没有必要。 所有的客户端路由都是由Angular2完成的。

所以我有两个“后端”Node.js服务器,一个用于WebAPI,另一个用于ClientApp。

以上工作正常。 我的问题是

  1. 将两个应用程序(WebAPI和ClientApp)合并到一个Node.js服务器中是否很常见?

  2. 如果是的话,Express路由URI和Angular2路由器的URI会互相混淆吗?

  3. 如果是有什么优点和缺点?

  4. 如果是,那么常见的文件夹结构是什么样的?

    PROJ根

    |--routes folder (for express) |--views folder (for express, actually there is no view for WebAPI) |--models folder (for WebAPI with mongoose) |--services folder (for WebAPI) |--app folder (for Anglar2 components) |-- views folder (for Angular2 html views) |--node_modules folder (for both) |--index.html (Angular2 start point) |--server.js (Express 4 startup file) |--package.json (for both) |--blabla 

上面看起来好吗?

虽然在项目布局方面没有明确的标准,但是build议在快递公司里留下前端代码。 angular的node_modules文件夹也可以留在/ public文件夹中。

路由可能有点复杂,你需要将所有的Angular特定的路由转发到/ index,或者你的Angular入口点是什么,然后让Angular处理它们。 其他路线将照常运输。

通过这种方式,您可以在Express内运行Angular,而不会出现任何问题,这是一种更简洁的布局和组织项目的方式。