下面是关于“Express框架req res对象使用详解”的完整攻略。
1. HTTP请求(req)对象
Express框架提供了一个request
对象(通常缩写为 req),作为每个请求的入口点,它包含了HTTP请求的属性和方法。
1.1 请求路径
req.path
属性可用于获取请求的路径,例如:
app.get('/users/:id', function(req, res){
console.log(req.path); // /users/123
res.send("Hello, user!");
});
其中/users/:id
是路由,请求路径是/users/123
,/users/456
等等。上面代码中,我们通过访问req.path
获取了请求的路径,然后将“Hello, user!”返回给客户端。
1.2 请求参数
通过路由,我们可以抓取到请求的参数,例如:
app.get('/users/:id', function(req, res){
var userID = parseInt(req.params.id);
res.send('UserID: ' + userID);
});
在这个例子里,我们通过req.params.id
访问了id
参数,从而获取了用户的ID,然后将其返回给客户端。
1.3 请求体
通过Express框架,我们可以访问请求体数据,例如POST请求的数据:
app.post('/finduser', function(req, res){
var username = req.body.username;
var password = req.body.password;
console.log(username + ' ' + password);
res.send({"success": true});
});
其中req.body
属性以JavaScript对象的方式返回POST请求体数据,从而我们可以获取到username
和password
,然后将其返回给客户端。
2. HTTP响应(res)对象
Express框架同样提供了一个response
对象(通常缩写为 res),它包含了HTTP响应的属性和方法。
2.1 返回状态码
res.status()
方法可以用于设置HTTP响应状态码:
app.get('/users/:id', function(req, res){
...
res.status(404); // Not Found
res.send('User not found.');
});
在这个例子里,我们通过res.status()
设置了状态码为404,然后将响应内容设为“User not found.”,这样客户端就会收到如下响应:HTTP/1.1 404 Not Found
。
2.2 返回响应头
res.set()
方法可以用于设置响应头,例如:
app.get('/users/:id', function(req, res){
...
res.set('Content-Type', 'text/plain');
res.send('Hello, user!');
});
在这个例子里,我们通过res.set()
设置了响应头的Content-Type
属性为text/plain
,这样客户端就会收到如下响应头:Content-Type: text/plain
。
2.3 返回响应体
res.send()
方法可用于向客户端发送响应体数据,例如字符串、JSON数据、HTML页面等等。如果想返回JSON数据,则可以这样做:
app.get('/users/:id', function(req, res){
...
res.send({"userID": 123, "username": "bob"});
});
在这个例子里,我们通过res.send()
方法将JSON数据返回给客户端。
3. 示例说明
示例1
下面是一个示例,它演示了如何获取客户端发送的请求头:
// 引入Express框架
const express = require('express');
const app = express();
// 监听路由
app.get('/', function(req, res){
console.log(req.headers);
res.send('Hello, world!');
});
// 启动服务器
app.listen(3000, function(){
console.log('Server is running on port 3000...');
});
在这个示例里,我们通过访问req.header
方法获取了请求头信息,然后向客户端返回了“Hello, world!”。
示例2
下面是另一个示例,它演示了如何设置响应头和状态码:
// 引入Express框架
const express = require('express');
const app = express();
// 监听路由
app.get('/', function(req, res){
res.set('Content-Type', 'text/plain');
res.status(404);
res.send('Page not found.');
});
// 启动服务器
app.listen(3000, function(){
console.log('Server is running on port 3000...');
});
在这个示例里,我们通过res.set()
方法设置响应头的Content-Type
属性为text/plain
,然后通过res.status()
设置状态码为404,最后发送了“Page not found.”。这样客户端就会收到如下响应:HTTP/1.1 404 Not Found
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Express框架req res对象使用详解 - Python技术站