Nock - 获取匹配的主机名

Nock - Get matched hostname

我想模拟一个内部主机命名方案,就像这样。

nock(/some-internal.(ds1|ds2|ds3).hostname/)
  .get("/info")
  .reply(200, (???, requestBody) => {
    if(??? === "d1") {
      // return mock for d1
    } else if (??? === "d2") {
      // return mock for d2
    }
    // ... 
}) 

回调的第一个参数是没有base的路径url,这样可以吗?

您可以使用上下文从回调内部访问 ClientRequest 实例。 Docs for accessing the original request and headers.

const scope = nock(/some-internal.(ds1|ds2|ds3).hostname/)
  .get('/info')
  .reply(function (uri, requestBody) {
    console.log('host:', this.req.options.host)
    // ...
  })