使用Angular4,Express和Mongo在Meanstack上使用相同的应用程序或两个不同的应用程序Frontend / Backend App?

时间:2017-10-19 18:09:04

标签: node.js angular-cli mean-stack

我是一位经验丰富的PHP开发人员,也是NodeJs和Angular的新手。我在过去的3-4个月里一直在学习这些东西。现在我知道了Nodejs,Express,Angular4,Socket.io和meanstack的基础知识。

我在nodejs中创建了认证应用程序,使用节点和套接字进行简单聊天。在我的学习阶段,在meanstack中应用简单的crud

现在我即将开始一个大项目,比如门户网站。哪个将有“前端用户”和“后端管理员”

现在问题是 1)我应该为不同端口上的同一服务器上托管的后端和前端创建两个不同的应用程序(例如,端口80上的前端,端口81上的后端)并连接到同一数据库。或者我应该在同一个应用程序上创建它们并在domain.com/admin等网址上运行后端。

我要知道其他开发人员在meanstack上创建这样一个大项目时会做些什么。他们使用相同的应用程序或两个不同的应用程序

2)我没有找到任何方法在一个Angular CLI项目上为前端和后端创建两个不同的模板。因为index.html文件夹中有一个src/文件,我们可以在其中定义组件和模板结构。

那么有没有参考如何在同一个角度cli app中创建两个模板。

感谢任何形式的帮助!

2 个答案:

答案 0 :(得分:2)

<强> App.routing.module.ts

const appRoutes: Routes = [
  {
    path:'',
    loadChildren: './client/client.route.module#ClientRouteModule'
  },
  {
    path:'admin',
    loadChildren: './admin/admin.route.module#AdminRouteModule'
  }
];
@NgModule({
  declarations: [],
  imports: [RouterModule.forRoot(appRoutes)],
  providers: [],
  bootstrap: [],
  exports: [RouterModule]
})

您可以创建两个不同的文件夹管理员和前端或客户端。并为管理员和客户端分别进行路由。

答案 1 :(得分:1)

这在很大程度上取决于您是否要将后端应用程序抽象出来以便与其他前端应用程序一起使用,或者是否要创建一个集成的应用程序。

我会选择前一种更模块化的方法,并按照以下方式实施:

  1. 两个独立的应用。这些都不会直接与数据库通信,但它们会与您通过Express公开的端点进行交互。

  2. 通过Express路由,我将为//admin定义前端路由 {{1}}的后端路由。这些将有效地击中两个 单独的Angular应用程序。

  3. 但是,如果您选择仅使用一个应用,Angular routing将是一个很好的起点。