nock library - 如何匹配任何url

时间:2013-02-03 23:27:59

标签: node.js

您好我正在尝试nock library,但我正在努力匹配查询字符串上的随机模式。我认为下面的代码应该可以工作,但我无法工作。

  var nock, request;

  request = require('request');

  nock = require('nock');

  nock("http://www.google.com").filteringPath(/.*/g).get("/").reply(200, "this should work?");

  request("http://www.google.com?value=bob", function(err, res, body) {
    return console.log(body);
  });

3 个答案:

答案 0 :(得分:19)

我之前没有使用过这个,但是从阅读docs开始可能会有所帮助。

这样的事情怎么样:

var nock = require('nock');
var request = require ('request');

nock("http://www.google.com")
    .filteringPath(function(path){
        return '/';
    })
    .get("/")
    .reply(200, "this should work?");

request("http://www.google.com?value=bob", function(err, res, body) {
    return console.log(body);
});

答案 1 :(得分:5)

只是为了完成thtsigma的回答:

如果您想匹配任何范围(协议,域和端口),您还可以添加Scope filtering

var nock = require('nock');
var request = require ('request');

nock("http://www.whatever-here.com", {
    filteringScope: function(scope) {
      return true;
    }
  })
  .filteringPath(function(path){
      return "/";
  })
  .get("/")
  .reply(200, "this should work?");

request("http://www.google.com?value=bob", function(err, res, body) {
  return console.log(body);
});

这样,任何网址都会匹配。

答案 2 :(得分:0)

我们也可以使用regexp

stdin