📌  相关文章
📜  在 express 中获取 url 参数 - Javascript (1)

📅  最后修改于: 2023-12-03 15:07:39.224000             🧑  作者: Mango

在 Express 中获取 URL 参数

在 Express 中,可以通过路由路径中的参数来访问某些值。这些参数在路径中使用冒号定义,并称为“路由参数”。

例如,我们想要访问当前登录用户的用户名,可以将路由路径定义为/users/:username。这样,我们就可以通过req.params.username来获取当前用户的用户名了。

以下是获取 URL 参数的一些示例代码。

定义路由

首先,我们需要定义一个路由来处理 URL 参数。

const express = require("express");
const app = express();

app.get("/users/:id", (req, res) => {
  const userId = req.params.id;
  res.send(`User ID: ${userId}`);
});

app.listen(3000, () => {
  console.log("Server is running on port 3000.");
});
获取路由参数

我们可以通过req.params对象来访问路由参数。

app.get("/users/:id", (req, res) => {
  const userId = req.params.id;
  res.send(`User ID: ${userId}`);
});

在此示例中,我们访问req.params.id来获取用户的 ID。如果我们的路由路径是/users/123,则将通过userId变量返回123

获取查询参数

我们还可以获取查询参数,即在 URL 中以问号?分隔的键/值对。查询参数可以通过req.query对象访问。

app.get("/search", (req, res) => {
  const keyword = req.query.q;
  res.send(`Search results for: ${keyword}`);
});

在此示例中,我们访问req.query.q来获取搜索关键字。如果我们的 URL 是/search?q=express,则将通过keyword变量返回express

使用正则表达式匹配路由

如果您的路由路径需要更复杂的匹配,可以使用正则表达式来定义路由。

app.get(/^\/users\/(\d+)$/, (req, res) => {
  const userId = req.params[0];
  res.send(`User ID: ${userId}`);
});

在此示例中,我们使用正则表达式来定义路由路径,并通过req.params[0]来获取用户 ID。这样,我们可以使用任何带有数字 ID 的 URL 来访问此路由。例如,/users/123/users/456 等。