使用koajs为angular2设置路由的正确方法是什么

时间:2016-08-23 08:35:38

标签: angular angular2-routing koa koa-router

我是angular2和koajs的新手。也许这是一个愚蠢的问题。

我有一个带有路由表的angular2 app,如下所示:

const appRoutes: Routes = [
  {
    path: 'pats/report/settings',
    component: PatsReportSettingsComponent
  },
  {
    path: 'pats/report/:id',
    component: PatsReportComponent,
    pathMatch: 'full'
  },
  {
    path: 'pats/report/login',
    component: PatsLoginComponent,
    pathMatch: 'full'
  },
  {
    path: '.',
    redirectTo: 'pats/report/login',
    pathMatch: 'full'
  },      
  {
    path: '**',
    component: Pats404PageComponent,
    pathMatch: 'full'
  },
];

如果用户通过根网址(http://localhost:3000)访问我们的应用,然后导航到子页面(例如:http://localhost:3000/pats/report/settings),一切都很好,因为angular2 app将在内部处理子页面导航并且不会向后端发出http请求。

但是如果用户直接使用子页面URL访问我们的应用程序,例如:http://localhost:3000/pats/report/settings,后端koajs应用程序将以404状态响应,因为它不存在路径'pats / report / settings'的路径后端。

解决此问题的正确方法是什么?

我应该为后端路由器中的所有客户端子页面路径添加路由并使用index.html进行响应吗?

1 个答案:

答案 0 :(得分:1)

我不认识Koajs,但你需要一些中间件。你的后端需要将这些请求重定向到localhost:3000/但是让URL保持原样,这样角度才能发挥其魔力!

请参阅koajs的其他附件:

另一种选择:使用Hashbang-URL! Angular2 URL-Styles