【问题标题】:How to manipulate the response from http request method?如何操作来自 http 请求方法的响应?
【发布时间】:2016-10-20 13:54:45
【问题描述】:

我在节点中使用带有“请求”功能的 https 模块。每当它被调用时,它都会发送一个响应。它会向下面的 onject 发出类似的响应

{
  _readableState: {
   },
  readable: true,
  domain: null,
  _events: {

  },
  _maxListeners: undefined,
  socket: {},
  connection: {},
  httpVersionMajor: null,
  httpVersionMinor: null,
  httpVersion: null,
  complete: false,
  headers: {
    'content-type': 'application/json'
  },
  rawHeaders: [

  ]
}

我必须从其中动态删除“标题”。我该怎么做?我正在使用 nock 进行单元测试,我可以通过 .reply 方法将标题设置为第三个参数(.reply(200, {}, {//header})) ,但不幸的是不能删除该标签本身。请帮帮我。

【问题讨论】:

    标签: node.js https httprequest sinon


    【解决方案1】:

    我不确定我是否正确理解了您的问题。

    如果你只是想简单地丢弃响应头。

    只需将 res.headers 值设置为 undefined 或将其删除即可。

    delete res.headers;
    //Or
    res.headers = undefined;
    

    【讨论】:

    • 我有这样的情况 ----------if(res.headers) {//do something} else {//dosomething}。 res 是来自 https.request 方法的响应。我想测试 else 循环,但我必须在此之前从 res 中删除标头,以便 if 条件被证明是错误的。我希望你清楚。
    • 标头:{ 'content-type': 'application/json' }。
    • 我可以将 header right 作为第三个参数设置为 nock().reply({}, {}, //setting header)。我的问题是,有没有办法删除它们(标题)?
    • 哦,我明白了!对不起,也许我帮不了你。如果不更改模块,就没有办法做到这一点。如果你打算这样做。你可能要修改 nock 模块的源代码
    • :(。我还能用什么来模拟 http.request 并修改响应?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    相关资源
    最近更新 更多