沃梦达 / IT编程 / 前端开发 / 正文

Express框架req res对象使用详解

下面是关于“Express框架req res对象使用详解”的完整攻略。

下面是关于“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请求体数据,从而我们可以获取到usernamepassword,然后将其返回给客户端。

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对象使用详解