📅  最后修改于: 2023-12-03 14:41:04.886000             🧑  作者: Mango
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 类型、文件扩展名或带有前导句点的扩展名。它可以被用来验证意外的或欺骗性的输入,有利于提高应用程序的安全性和效率。