IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.

Transport

edit

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)
  }
}

Supported content types

edit

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