Library for intercept Node.js requests
Node.js 8+ support.
npm install --save nock-interceptor
nock-interceptor
works by overriding Node's http.request
function. It also overrides http.ClientRequest
that created internally and returned from http.request
.
You can simply intercept all requests:
const interceptor = require('nock-interceptor');
interceptor.activate((request, reply, passthrough) => {
// do something
})
Information about current request is in request
object. And you can:
- reply to request with your data by means of
reply
- or pass through request by means of
passthrough
.
const interceptor = require('nock-interceptor');
This object has two methods:
activate(callback)
.callback
has 3 arguments:callback: (request, reply, passthrough) => void
.destroy()
Stop intercepting Node.js http requests.
It is object which has information about current intercepted request.
const interceptor = require('nock-interceptor');
interceptor.activate((request, reply, passthrough) => {
const { method, headers, body, url, interceptedRequest } = request;
// do something, e.g. reply or passthrough depending on the request params
})
method: string
— request method.headers: Object
— request headers.body: Buffer
— request body.url: string
— request url.interceptedRequest: InterceptedRequest
— request object. TheInterceptedRequest
class extends originalhttp.ClientRequest
.
reply: ({ status, headers, body }) => void
It is function for replying to intercepted request. It is provided 3 arguments for response:
status: number
— response status (default 200).headers: Object
— response headers.body: string | Buffer
— response body.
const interceptor = require('nock-interceptor');
interceptor.activate((request, reply, passthrough) => {
// intercepted all requests and replied with a same response
reply({body: 'This request has been intercepted'})
})
It is function for passthrough intercepted request. It returned response
of request:
status: number
— response status.headers: Object
— response headers.body: Buffer
— response body.
const interceptor = require('nock-interceptor');
interceptor.activate(async (request, reply, passthrough) => {
const response = await passthrough();
// e.g. logging response and request
})
MIT