2017-10-15 2 views
1

Je suis avec un projet de pile MEAN. C'est presque terminé, tout fonctionne, mais j'aimerais savoir s'il est possible d'améliorer l'apparence de l'URL. Par exemple, Maintenant, je trouve l'utilisateur par le _id, et l'URL montre que _id. Il est possible de continuer à trouver par id mais sur l'url avant en affichant le nom d'utilisateur?Angulaire 2: Afficher le nom d'utilisateur au lieu de l'ID sur l'URL

+0

Bien, si vous connaissez l'utilisateur avant de naviguer, vous pouvez stocker cet utilisateur à un service et le récupérer après la navigation. Il est difficile de continuer à ne pas savoir exactement ce qui se passe dans votre code. – Alex

Répondre

0

Si vous voulez rechercher par id, vous avez besoin que id dans votre URL. Mais vous pourriez avoir à la fois id et userName dans l'URL (recherche par id, ignorant userName), ce serait peut-être une solution pour vous:

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

Si vous n'aimez pas ids mongo (ils sont assez long), vous pourriez les transformer par exemple via le module hashids ou short-mongo-id.

Ou vous pouvez également ajouter un nouveau champ indexé à la table mongo de votre utilisateur, qui aura un identifiant userName unique, et l'utilisera au lieu du champ id (mais vous devrez gérer les collisions dans votre backend).

+0

Merci @Martin Adámek, je trouve bien par _id, ma question était s'il est possible d'écraser ce _id et le remplacer par le nom d'utilisateur sans modifier la requête. Donc je veux continuer à trouver par _id mais en affichant le nom d'utilisateur sur l'url. Est-ce possible grâce à un service d'assistance ou autre? –

+0

non ce n'est pas, que quelle première phrase de ma réponse dit ... si vous voulez rechercher par 'id', alors vous devez savoir que« id »... votre frontend (application angulaire) n'ont aucune idée de la cartographie de nom d'utilisateur à l'id ... –

+0

Merci Martin pour votre temps !, je vais essayer ce que vous avez dit à propos de l'ignorance. Je pensais que c'était possible. Juste fyi (si les autres lisent le post) Ma question est similaire à https://stackoverflow.com/questions/42533757/angular2-use-object-name-in-route-but-send-id-in-http –