在前端开发中,我们经常使用 Express.js 这个流行的 Node.js 框架来构建 Web 应用程序。而在 Express.js 中,request 和 response 对象是两个非常重要的对象,它们承载了很多关键的功能和信息。本文将详细介绍 Express.js 的 request 和 response 对象,帮助读者更好地理解和运用它们。
1. request 对象
request 对象代表客户端发起的 HTTP 请求。在 Express.js 中,request 对象封装了 HTTP 请求的所有信息,包括请求头部、请求参数、请求体等等。下面是一些常用的 request 对象的属性和方法:
1.1. request.params
params 属性是一个对象,它包含了所有的路由参数。例如,我们定义了一个路由:
app.get('/user/:id', function(req, res) { console.log(req.params.id); });
当用户请求 /user/123
时,params 对象的值为 {id: '123'}
。
1.2. request.query
query 属性是一个对象,它包含了所有的查询参数。例如,当用户请求 /search?q=express&limit=10
时,query 对象的值为 {q: 'express', limit: '10'}
。
1.3. request.body
body 属性是一个对象,它包含了请求体的内容。在 Express.js 中,我们通常使用 body-parser 中间件来解析请求体。例如,当用户提交一个表单时,我们可以通过以下方式获取表单数据:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- --- - ---------- ------------------------------- --------- ----- ---- ------------------ ------------- ---- - ------------------------------- ------------------------------- ---
1.4. request.headers
headers 属性是一个对象,它包含了所有的请求头部。例如,当用户请求时,headers 对象的值为:
-- -------------------- ---- ------- - ------- ----------------- ------------- ------------- ---------------- ------------ ---------------------------- ---- ------------- ------------ -------- -- ----- ------ ---- ------------------ ------- ---- ------ -------------------- -------------- --------- ----------------------------------------------------------------------------- ------------------ ------ -------- ----- ---- ------------------ ------------------------- -
1.5. request.cookies
cookies 属性是一个对象,它包含了所有的 Cookie。例如,当用户请求时,cookies 对象的值为:
{ "sessionid": "1234567890" }
1.6. request.get(header)
get 方法用于获取指定的请求头部。例如,当用户请求时,req.get('User-Agent')
返回的是浏览器的 User-Agent。
2. response 对象
response 对象代表服务器端返回的 HTTP 响应。在 Express.js 中,response 对象封装了 HTTP 响应的所有信息,包括响应头部、响应内容等等。下面是一些常用的 response 对象的属性和方法:
2.1. response.send([body])
send 方法用于发送 HTTP 响应。它可以接受多种数据类型,包括字符串、数字、对象、数组等等。例如:
-- -------------------- ---- ------- ------------ ------------- ---- - --------------- --------- --- ---------------- ------------- ---- - --------------- ------- ---- ----- --- ----------------- ------------- ---- - ----------------- ------ --------- ---
2.2. response.json([body])
json 方法用于发送 JSON 格式的 HTTP 响应。例如:
app.get('/user', function(req, res) { res.json({name: 'John', age: 30}); });
2.3. response.redirect([status,] path)
redirect 方法用于重定向到另一个 URL。例如:
app.get('/google', function(req, res) { res.redirect('https://www.google.com'); });
2.4. response.sendFile(path[, options][, fn])
sendFile 方法用于发送文件。例如:
app.get('/image', function(req, res) { res.sendFile('/path/to/image.jpg'); });
2.5. response.status(code)
status 方法用于设置 HTTP 状态码。例如:
app.get('/notfound', function(req, res) { res.status(404).send('Not Found'); });
3. 总结
本文介绍了 Express.js 的 request 和 response 对象,包括它们的属性和方法。希望读者能够更好地理解和运用它们,从而提高开发效率。最后,附上一段完整的示例代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- --- - ---------- ------------------------------- --------- ----- ---- ------------ ------------- ---- - --------------- --------- --- -------------------- ------------- ---- - --------------------------- -------------- --- - - --------------- --- ------------------ ------------- ---- - ------------------------------- ------------------------------- --------------- ---------- --- ---------------- ---------- - ------------------- -- ------- -- ------------------------ ---
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65865f1dd2f5e1655d0dc534