推荐答案
在 Express 中,可以通过以下方式获取参数、查询字符串和请求体:
参数 (params):通过
req.params
获取。通常用于 RESTful API 中的动态路由参数。app.get('/users/:userId', (req, res) => { const userId = req.params.userId; res.send(`User ID: ${userId}`); });
查询字符串 (query):通过
req.query
获取。用于获取 URL 中的查询参数。app.get('/search', (req, res) => { const query = req.query.q; res.send(`Search Query: ${query}`); });
请求体 (body):通过
req.body
获取。通常用于 POST 或 PUT 请求中传递的 JSON 或表单数据。需要先使用body-parser
中间件解析请求体。-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- --- - ---------- --------------------------- -- -- ---- ------ ------------------------------- --------- ---- ---- -- -- --- ------ ------------------ ----- ---- -- - ----- -------- - --------- -------------- ----- ------------------------------ ---
本题详细解读
1. 参数 (params)
- 用途:用于获取路由中的动态参数。例如,在 RESTful API 中,
/users/:userId
中的:userId
是一个动态参数。 - 获取方式:通过
req.params
对象访问。req.params
是一个包含路由参数的对象,键名对应路由中的参数名。 - 示例:
app.get('/users/:userId/posts/:postId', (req, res) => { const userId = req.params.userId; const postId = req.params.postId; res.send(`User ID: ${userId}, Post ID: ${postId}`); });
2. 查询字符串 (query)
- 用途:用于获取 URL 中的查询参数。例如,
/search?q=express
中的q=express
是查询字符串。 - 获取方式:通过
req.query
对象访问。req.query
是一个包含查询参数的对象,键名对应查询参数的名称。 - 示例:
app.get('/search', (req, res) => { const query = req.query.q; const page = req.query.page || 1; // 默认值为 1 res.send(`Search Query: ${query}, Page: ${page}`); });
3. 请求体 (body)
- 用途:用于获取 POST 或 PUT 请求中传递的数据,通常用于表单提交或 JSON 数据。
- 获取方式:通过
req.body
对象访问。需要先使用body-parser
中间件解析请求体。 - 解析方式:
bodyParser.json()
:解析 JSON 格式的请求体。bodyParser.urlencoded({ extended: true })
:解析 URL 编码的请求体(通常用于表单提交)。
- 示例:
app.post('/login', (req, res) => { const username = req.body.username; const password = req.body.password; res.send(`Username: ${username}, Password: ${password}`); });
通过以上方式,可以在 Express 中灵活地处理不同类型的请求数据。