在nodejs上发出POST请求后,请求正文为空

时间:2018-01-07 13:34:35

标签: node.js unit-testing request hapijs nock

我正在尝试从我的test.js发出以下帖子请求,但是我正在尝试从2小时开始等待我的测试成功但是它没有成功。

请用nock找到以下代码。

beforeEach(() => {
  var payload = {
    channel: 'Cricket',
    codes: 'c--HOjyWVww:APA'
  };
  scope = nock('http://localhost:3000')
    .post('/channel/subscribe', payload)
    .reply(200, { status: 200 });
});
request.post('http://localhost:3000/channel/subscribe', function(err, body) {
  console.log(err, null);
});

it('Subscribing to channel', function(done) {
      request.post({
        url: 'http://localhost:3000/channel/subscribe',
        headers: {
          'accept': 'application/json',
          'content-Type': 'application/x-www-form-urlencoded'
        },
        mode: 'no-cors',
        body: JSON.stringify({
          channel: "Cricket",
          codes: "c--HOjyWVww:APA"
        })
      }, function(err, response) {
        console.log(request.payload);
        console.log("+response status code:", response.statusCode);
        console.log(response.failureCount);
        if (err) {
          throw err; // => Error: Nock: No match for request POST http://foobar.com/ {"foo":"biz"}
        }
        done();
      })

1 个答案:

答案 0 :(得分:-1)

您是否在应用程序中设置了bodyParser? 像:

app.use(bParser.json());

在你自己的情况下应该是:

app.use(bodyParser.urlencoded());
app.use(bodyParser.json());