2017-10-15 35 views
1

我正在使用MEAN堆棧項目。即將完成,所有的作品,但只是我想知道是否有可能改善網址的外觀。Angular 2:在url上顯示用戶名而不是id

例如,現在我正在通過_id找到用戶,並且網址顯示_id。有可能繼續通過id找到,但在前面的網址desplaying用戶名?

+0

那麼如果您在導航之前知道用戶,則可以將該用戶存儲到某個服務並在導航後抓取該服務。很難進一步幫助您不知道代碼中究竟發生了什麼。 – Alex

回答

0

如果您想通過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://stackoverflow.com/questions/42533757/angular2-use-object-name-in-route-but-send-id-in-http –

相關問題