node.js - Nock.js:如何检查标头是否存在?
问题描述
我将 Nock 与 Mocha 一起使用,并想检查请求中是否存在某些标头。我不关心其他标题,也不关心我正在检查其存在的标题的具体内容。是否有捷径可寻?.matchHeader()
当特定标头不存在时通过,reqheaders
除非我指定所有标头字段,否则失败。
解决方案
reqheaders
是正确的方法。
我不确定您遇到了什么问题,但并非所有标题都需要提供。只有匹配所需的那些。
另一个不错的特性reqheaders
是该值可以是返回布尔值的函数。由于您不关心标头的实际值,因此true
如果标头仅存在,则返回具有匹配的效果。
const scope = nock('http://www.example.com', {
reqheaders: {
'x-one': () => true,
}
}).get('/').reply(200, 'match!')
const reqOpts = {
hostname: 'www.example.com',
path: '/',
method: 'GET',
headers: {
'X-One': 'hello world',
'X-Two': 'foo bar',
'Content-Type': 'application/json',
}
}
const req = http.request(reqOpts, res => {
console.log("##### res status", res.statusCode)
res.on('data', (chunk) => {
console.log("##### chunk", chunk.toString())
})
})
req.end()
scope.done()
推荐阅读
- c# - System.Reflection.ReflectionTypeLoadException: '无法加载一种或多种请求的类型
- sudo - 使用 sudo 的 Bazel 测试不起作用:/usr/bin/sudo 必须由 uid 0 拥有并设置了 setuid 位
- html - Firefox 和 Safari 上的下拉箭头样式错误
- c++ - gcc 显示 std::from_chars( ... double & ) 的错误
- vaadin - Vaadin 指南 - 如何正确添加它们
- java - Java8 Stream:groupingBy和创建地图
- android - React native reanimated package 在 react-navigation/drawer 上给出错误?
- vue.js - 为什么一些 fontAwesome 图标没有丢失?
- node.js - 在 html 标签中使用 socket.io 时出错
- raspberry-pi - Raspberry Pi 上的 Puppeteer 无法启动 chromium-browser:错误:读取 ECONNRESET