2016-04-14 86 views
1

目前我的测试应用程序是这样配置的。角2和快递4合并在一个node.js服务器

的WebAPI负责从客户端应用程序

  • 用MongoDB的
  • 通信回送应答

    1. 接受请求。

    它使用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. 如果是,那么常见的文件夹结构是什么样子?

      凸出根

      |--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 
      

    请问上面看可以吗?

  • 回答

    1

    虽然在项目布局方面没有明确的标准,但推荐在express中将前端代码留在公用文件夹内。 angular的node_modules文件夹也可以留在/ public文件夹中。

    路由可能会有点复杂,您需要将所有Angular特定路由转发到/ index或任何您的Angular入口点,并让Angular处理它们。其他路线将照常以快递方式处理。

    通过这种方式,您可以在没有任何问题的情况下运行Angular内部的Angular,并且它是布局和组织项目的更简洁的方式。

    +0

    这是有道理的。谢谢。 – Shawn