我正在使用MEAN堆棧項目。即將完成,所有的作品,但只是我想知道是否有可能改善網址的外觀。Angular 2:在url上顯示用戶名而不是id
例如,現在我正在通過_id找到用戶,並且網址顯示_id。有可能繼續通過id找到,但在前面的網址desplaying用戶名?
我正在使用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