Angular 2:在url上显示用户名而不是id

问题描述:

我正在使用MEAN堆栈项目。即将完成,所有的作品,但只是我想知道是否有可能改善网址的外观。Angular 2:在url上显示用户名而不是id

例如,现在我正在通过_id找到用户,并且网址显示_id。有可能继续通过id找到,但在前面的网址desplaying用户名?

+0

那么如果您在导航之前知道用户,则可以将该用户存储到某个服务并在导航后抓取该服务。很难进一步帮助您不知道代码中究竟发生了什么。 – Alex

如果您想通过id进行搜索,则需要在您的url中使用id。但是你可以在网址都iduserName(由id搜索,忽略userName),也许这将是你的解决方案:

/user/:id/:userName/user/:userName/:id

如果你不喜欢蒙戈IDS(他们很长),你可以改变它们,例如通过hashidsshort-mongo-id模块。

或者您也可以为用户mongo表添加新的索引字段,该字段将具有唯一的userName标识符,并使用该字段替代id字段(但您需要在后端处理冲突)。

+0

谢谢@MartinAdámek,我找到了很好的_id,我的问题是如果有可能覆盖_id并将其替换为用户名而不修改查询。所以我想继续通过_id查找,但在url上显示用户名。 ¿是否可以通过帮手服务或其他方式? –

+0

没有它的不是,我的答案的第一句话说...如果你想通过'ID'搜索,那么你需要知道'ID' ...你的前端(角度应用程序)不知道映射的用户名到ID ... –

+0

谢谢马丁你的时间!,我会尝试你所说的关于忽略。我认为这是可能的。只是fyi(如果其他人阅读帖子)我的问题类似于https://*.com/questions/42533757/angular2-use-object-name-in-route-but-send-id-in-http –