Как изменить параметры url node.js с id на ключевые слова для блога - PullRequest
0 голосов
/ 04 января 2019

Я создаю блог, используя node.js и хочу сделать блог более удобным для поисковых систем.

В настоящее время маршрут показа для одного из моих постов - /blogs/:id с идентификатором, представляющим собой огромную строку чисел.
Мне бы хотелось, чтобы оно было /blogs/title-of-example-post, но я не могу найти в Интернете ничего, что бы указывало, как это сделать с помощью JavaScript.

Можно ли написать функцию, которая могла бы найти сообщение по идентификатору и отобразить его заголовок в URL?Вот мой код маршрута шоу.

app.get("/blogs/:id", function(req, res){
  Blog.findById(req.params.id, function(err, foundBlog){
      if(err){
          res.redirect("/blogs");
      } else {
          res.render("show", {blog: foundBlog});
      }
  })
});

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 04 января 2019

Обычно это делается с помощью чего-то, называемого слизняком.Обычно он генерируется во время написания статьи и является уникальным, но основан на заголовке статьи, как вы упомянули, для целей SEO.

То, что вы хотели бы сделать, - это сохранить фрагмент в документе блога и найти по немувместо удостоверения личности.Примерно так:

Blog.find({ slug: req.params.slug}, function (err, foundBlog) {

Вам придется генерировать слагов для всех статей, которые существуют в настоящее время, но это должно быть относительно просто для сценария - обычно это просто вопрос нижнего регистра,удаление пунктуации и изменение пробелов на тире.Если вы хотите получить фантазию, вы можете удалить тривиальные слова, такие как «the».Вот один пример NPM-пакета, который преобразует строки в слагов из коробки: slugify

Запустите его для всех предыдущих статей и добавьте код на страницу создания блога, чтобы сгенерировать его при сохранении новых статей..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...