📜  Express.js req.is()函数(1)

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

Express.js req.is() 函数

req.is() 函数是 Node.js Express 中 request 对象的一种方法,用于确定提交请求的内容类型。它返回一个布尔值,指示请求是否是指定的类型。

语法
req.is(type)

参数:

  • type:请求要匹配的内容类型。可以是 MIME 类型、文件扩展名(必须有前导句点)或 .ext 格式的扩展名。
例子
const express = require('express')
const app = express()

app.use(express.json()) // 解析 application/json

app.post('/users', function (req, res) {
  // 检查请求是否为 JSON 格式
  if (req.is('json')) {
    res.send('Request is JSON')
  } else {
    res.send('Request is not JSON')
  }
})
执行结果

发送 JSON 格式的数据:

$ curl -H "Content-Type: application/json" -X POST -d '{"username":"test", "password": "123456"}' "http://localhost:3000/users"
Request is JSON

发送 XML 格式的数据:

$ curl -H "Content-Type: application/xml" -X POST -d "<username>test</username><password>123456</password>" "http://localhost:3000/users"
Request is not JSON
扩展名匹配

req.is() 函数也支持使用文件扩展名进行匹配。在这种情况下,扩展名必须带有句点,例如 .json.xml

app.get('/profile', function (req, res) {
  if (req.is('json')) {
    res.send('Your profile in JSON')
  } else if (req.is('xml')) {
    res.send('Your profile in XML')
  } else {
    res.send('Your profile')
  }
})
执行结果

发送 JSON 格式的数据:

$ curl -H "Accept: application/json" "http://localhost:3000/profile.json"
Your profile in JSON

发送 XML 格式的数据:

$ curl -H "Accept: application/xml" "http://localhost:3000/profile.xml"
Your profile in XML
总结

req.is() 函数是一个非常实用的函数,可用于确定提交请求的内容类型是 MIME 类型、文件扩展名或带有前导句点的扩展名。它可以被用来验证意外的或欺骗性的输入,有利于提高应用程序的安全性和效率。