Как мне создать удобные для пользователя URL-адреса с помощью node и express?

#node.js #express #mongoose

#node.js #экспресс #mongoose

Вопрос:

Я только что закончил bootcamp веб-разработчика Colt Steele и начал создавать свое собственное приложение.

Мой вопрос заключается в использовании MongoDB, Express и Node, я вижу, что созданные URL-адреса похожиhttp://localhost/category/122398753984 где число — это номер MongoDB _id.

Возможно ли закодировать таким образом, чтобы использовать название категории? Например http://localhost/category/finance где вместо значения идентификатора отображается название категории. Если это возможно, как мне также справиться с конфликтующими именами, например, кто-то также вводит в finance название категории. Спасибо

Ответ №1:

конечно, вы можете просто добавить новое поле в свою модель категории.

 category: {
 _id: ObjectId,
 name: "Finance",
 slug: "finance"
}
  

Теперь, когда вы создаете маршрут:

 router.get('/category/:slug', function(req, res) {
   const slug = req.params.slug;
   const category = // query database using slug value.
   return res.json(category);
})
  

Комментарии:

1. Спасибо! Есть ли способ предотвратить дублирование пуль?

2. Да, вы можете добавить уникальный индекс в поле slug в схеме mongoose. также перед вставкой новой категории выполните поиск существующей категории с недавно вставленным slug, если есть категория с таким же, затем верните пользователю сообщение об ошибке.