📜  Express.js res.status()函数(1)

📅  最后修改于: 2023-12-03 15:14:57.530000             🧑  作者: Mango

Express.js res.status()函数

在使用 Express.js 时,我们经常需要向客户端发送 HTTP 响应码。res.status()函数就是用来设置 HTTP 响应码的。

语法
res.status(code)
参数
  • code: HTTP 响应码,默认值为 200。
返回值

该函数不返回任何值。

用法

在 Express.js 中,res.status()函数一般用在路由函数中,用于设置该路由的 HTTP 响应码。

const express = require('express')
const app = express()

app.get('/', (req, res) => {
    res.status(200).send('Hello, World!')
})

app.listen(3000, () => {
    console.log('Server started at http://localhost:3000')
})

在上面的代码中,我们创建了一个 GET 请求的路由,向客户端发送了一个 HTTP 响应码为 200 的响应,同时还发送了一个包含字符串“Hello, World!”的消息体。

如果您不手动设置 HTTP 响应码,Express.js 会默认使用 200 状态码。

除了 200 状态码,常用的 HTTP 状态码还有 401 未授权、403 禁止访问、404 找不到页面、500 服务器内部错误等。

您可以在路由函数中根据具体情况设置不同的 HTTP 响应码。例如,在用户未授权时可以设置 HTTP 响应码为 401,禁止访问时可以设置 HTTP 响应码为 403。

app.get('/secret', (req, res) => {
    if (req.session && req.session.authenticated) {
        res.send('You have access to secret information.')
    } else {
        res.status(401).send('You are not authorized to access this page.')
    }
})

app.get('/admin', (req, res) => {
    if (req.user && req.user.isAdmin) {
        res.send('Welcome, admin!')
    } else {
        res.status(403).send('You are not allowed to access this page.')
    }
})
注意事项
  • res.status()函数必须在发送响应之前调用。
  • 在使用 res.status()函数之后,如果您需要发送响应,必须使用 res.send()res.end()函数。否则,客户端将会一直处于等待状态。
结论

res.status()函数是 Express.js 中常用的函数之一。它可以帮助您设置 HTTP 响应码,让您的应用更加规范和易于维护。