Angular 2:在url上显示用户名而不是id
我正在使用MEAN堆栈项目。即将完成,所有的作品,但只是我想知道是否有可能改善网址的外观。Angular 2:在url上显示用户名而不是id
例如,现在我正在通过_id找到用户,并且网址显示_id。有可能继续通过id找到,但在前面的网址desplaying用户名?
如果您想通过id
进行搜索,则需要在您的url中使用id
。但是你可以在网址都id
和userName
(由id
搜索,忽略userName
),也许这将是你的解决方案:
/user/:id/:userName
或/user/:userName/:id
如果你不喜欢蒙戈IDS(他们很长),你可以改变它们,例如通过hashids或short-mongo-id模块。
或者您也可以为用户mongo表添加新的索引字段,该字段将具有唯一的userName
标识符,并使用该字段替代id
字段(但您需要在后端处理冲突)。
谢谢@MartinAdámek,我找到了很好的_id,我的问题是如果有可能覆盖_id并将其替换为用户名而不修改查询。所以我想继续通过_id查找,但在url上显示用户名。 ¿是否可以通过帮手服务或其他方式? –
没有它的不是,我的答案的第一句话说...如果你想通过'ID'搜索,那么你需要知道'ID' ...你的前端(角度应用程序)不知道映射的用户名到ID ... –
谢谢马丁你的时间!,我会尝试你所说的关于忽略。我认为这是可能的。只是fyi(如果其他人阅读帖子)我的问题类似于https://stackoverflow.com/questions/42533757/angular2-use-object-name-in-route-but-send-id-in-http –
那么如果您在导航之前知道用户,则可以将该用户存储到某个服务并在导航后抓取该服务。很难进一步帮助您不知道代码中究竟发生了什么。 – Alex