📅  最后修改于: 2023-12-03 15:07:39.224000             🧑  作者: Mango
在 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
等。