Express.js 中有用的 HTTP 状态码

在 Express.js 中,HTTP 状态码是我们在处理 HTTP 请求和响应时必须了解的一个重要概念。HTTP 状态码是服务器在响应客户端请求时返回的一个三位数字代码,用于告知客户端请求的处理结果。这篇文章将介绍一些在 Express.js 中常用的 HTTP 状态码,并解释它们的意义、使用场景和示例代码。

200 OK

200 是最常见的 HTTP 状态码之一,表示服务器成功处理了客户端的请求。这个状态码通常在 GET 或 POST 请求成功时返回,表示服务器已经正确地处理了请求并返回了所需的数据。

示例代码:

app.get('/users', (req, res) => {
  const users = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }];
  res.status(200).json(users);
});

201 Created

201 表示服务器成功创建了新的资源,并将其 URI 返回给客户端。这个状态码通常在 POST 请求成功时返回,表示服务器已经成功创建了一个新的资源。

示例代码:

app.post('/users', (req, res) => {
  const user = { id: 3, name: 'Charlie' };
  // Save the new user to database
  res.status(201).location(`/users/${user.id}`).json(user);
});

400 Bad Request

400 表示客户端发送的请求存在语法错误或无法被服务器理解。这个状态码通常在客户端发送的请求参数不合法或缺失时返回。

示例代码:

app.get('/users', (req, res) => {
  const { limit, offset } = req.query;
  if (!limit || !offset) {
    res.status(400).send('Missing required parameters');
  }
  // Query the database using limit and offset
  // ...
});

401 Unauthorized

401 表示客户端请求需要身份验证,但客户端没有提供有效的身份验证凭证。这个状态码通常在需要登录或访问受限资源时返回。

示例代码:

app.get('/profile', (req, res) => {
  if (!req.session.user) {
    res.status(401).send('Unauthorized');
  }
  // Render the user's profile page
  // ...
});

404 Not Found

404 表示客户端请求的资源不存在或无法被找到。这个状态码通常在客户端请求的 URL 不正确或请求的资源已被删除时返回。

示例代码:

app.get('/users/:id', (req, res) => {
  const user = findUserById(req.params.id);
  if (!user) {
    res.status(404).send('User not found');
  }
  // Render the user's profile page
  // ...
});

500 Internal Server Error

500 表示服务器在处理客户端请求时发生了未知的错误。这个状态码通常在服务器代码出现异常或数据库连接出现问题时返回。

示例代码:

app.get('/users', async (req, res) => {
  try {
    const users = await getUsersFromDatabase();
    res.status(200).json(users);
  } catch (error) {
    console.error(error);
    res.status(500).send('Internal Server Error');
  }
});

总结

HTTP 状态码是我们在处理 HTTP 请求和响应时必须了解的一个重要概念。在 Express.js 中,我们可以使用 res.status() 方法来设置 HTTP 状态码,以告知客户端请求的处理结果。本文介绍了一些在 Express.js 中常用的 HTTP 状态码,并提供了使用场景和示例代码。希望这篇文章能够帮助你更好地理解和使用 HTTP 状态码。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658f9037eb4cecbf2d52f4f3


纠错
反馈