Loading

Transport

This class is responsible for performing the request to Elasticsearch and handling errors, it also handles sniffing.

const { Client } = require('@elastic/elasticsearch') const { Transport } = require('@elastic/transport') class MyTransport extends Transport { request (params, options, callback) { // your code } } const client = new Client({ Transport: MyTransport }) 

Sometimes you need to inject a small snippet of your code and then continue to use the usual client code. In such cases, call super.method:

class MyTransport extends Transport { request (params, options, callback) { // your code return super.request(params, options, callback) } } 

Depending on the content-type of the response, the transport will return the body as different types:

Content-Type JavaScript type
application/json object
text/plain string
application/vnd.elasticsearch+json object
application/vnd.mapbox-vector-tile Buffer
application/vnd.apache.arrow.stream Buffer
application/vnd.elasticsearch+arrow+stream Buffer
application/smile Buffer
application/vnd.elasticsearch+smile Buffer
application/cbor Buffer
application/vnd.elasticsearch+cbor Buffer