【问题标题】:Nock.js: how do I check for the existence of a header?Nock.js:如何检查标头是否存在?
【发布时间】:2019-06-21 06:48:36
【问题描述】:

我正在将 Nock 与 Mocha 一起使用,并想检查请求中是否存在某些标头。我不关心其他标题,也不关心我正在检查其存在的标题的具体内容。是否有捷径可寻? .matchHeader() 在特定标头不存在时通过,reqheaders 失败,除非我指定所有标头字段。

【问题讨论】:

    标签: node.js nock


    【解决方案1】:

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      相关资源
      最近更新 更多