我试图在我的platform-server
/ universal
应用中描述一条带有参数的路线但到目前为止没有任何成功。
任何人都知道如何定义实现?
根据我对express
路由的了解,我尝试了以下内容,但最终我遇到了错误
routes.ts:
export const ROUTES: string[] = [
'/',
'/item/:id'
];
main.server.ts:
ROUTES.forEach((route: string) => {
app.get(route, (req: Request, res: Response) => {
res.render('../dist/index', {
req: req,
res: res
});
});
});
我的组件:
constructor(private route: ActivatedRoute) {
}
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
console.log(params['id']);
});
}
使用此代码,服务器npm start
正在启动时没有错误,但是当我调用http://localhost:8000/item/thisistheparam
时,我在浏览器控制台中遇到以下错误
错误:未捕获(在承诺中):错误:无法匹配任何路由。网址细分:' item / thisistheparam'
答案 0 :(得分:0)
哎呀我发现了问题,我忘了将路径添加到我的懒人模块中;)
分别在我的item.module.ts:
@NgModule({
declarations: [ItemView],
imports: [
RouterModule.forChild([
{ path: ':id', component: PublicItemView, pathMatch: 'full'}
])
]
})
我将path: ''
更改为path: ':id'
以及所有内容,如果现在像魅力一样工作