點燈坊

失くすものさえない今が強くなるチャンスよ

回傳 HTTP Status Code

Sam Xiao's Avatar 2021-10-26

若要回傳不同的 HTTP Status Code,可使用 res.statusres.sendStatus

Version

Express 4.17.1

res.status

import express from 'express'
import cors from 'cors'

let app = express ()
app.use (cors ())

app.get ('/api', (req, res) => res.status (401).send ('Token Expired'))
app.listen (8080, _ => console.log ('Node listen on port: 8080'))

第 7 行

app.get ('/api', (req, res) => res.status (401).send ('Token Expired'))
  • 使用 app.get 建立 / response,由 res.send() 回傳結果

  • .send 之前可加上 .stats() 回傳 HTTP status code

status000

HTTP client 除了獲得 401 外,也收到 Token Expired

res.sendStatus

import express from 'express'
import cors from 'cors'

let app = express ()
app.use (cors ())

app.get ('/api', (req, res) => res.sendStatus (401))
app.listen (8080, _ => console.log ('Node listen on port: 8080'))

第 7 行

app.get ('/api', (req, res) => res.sendStatus (401))

使用 sendStatus 送出 401

status001

HTTP client 除了獲得 401 外,也收到預設的 Unauthorized

Conclusion

  • 若只想簡單送出 HTTP status code,使用預設訊息即可,則使用 res.sendStatus
  • 若除了送出 HTTP Status Code 還要包含自訂訊息,則要使用 res.status

Reference

Express, res.status
Express, res.sendStatus