与Express JS的SEO友好链接



我正在尝试使用Node + Express JS构建一个博客网站。我想让它对SEO友好,因为目前指向博客的链接正在使用数据库的ID。例如:

localhost:3000/posts/1

但是,我想要一个这样的链接:

localhost:3000/posts/my-adventure/

我正在关注 dev.to 网站,我看到他们使用的href不是带有id,而是带有文章名称。我在这里感到困惑,因为从性能的角度来看,这似乎效率不高,因为数据库必须通过长字符串搜索?

<a href="/djangostars/choosing-python-for-web-development-top-16-pros-and-cons-4c4k" id="article-link-185734" class="index-article-link" aria-label="Main Story" data-featured-article="articles-185734">
</a>

我想请您帮助了解如何在我的应用程序中实现这一点。目前我正在使用这种类型的路由:

router.get("/:id", async (req, res, next) => {
const post = await db.query(
"SELECT * FROM posts WHERE id = $1",
req.params.id
);
res.render("readPost", { title: post.title, post: post });
});

一种方式(我更喜欢这个(

将"id"附加到 URL 以使其唯一。(sth 喜欢本地主机:3000/帖子/我的冒险-1/(

您的代码段可能不会更改,但 db 列类型除外(如果您使用了数字(

你可以使用slugify。

另一种方式

router.get("/:slug/:id", async (req, res, next) => {
const post = await db.query(
"SELECT * FROM posts WHERE id = $1",
req.params.id
);
res.render("readPost", { title: post.title, post: post });
});

https://medium.com/@thiscodeworks.com/implementing-url-slugs-on-express-node-js-5f5890431dea

最新更新