42 lines
1.1 KiB
Plaintext
42 lines
1.1 KiB
Plaintext
[[transport]]
|
|
=== Transport
|
|
|
|
This class is responsible for performing the request to {es} and handling
|
|
errors, it also handles sniffing.
|
|
|
|
[source,js]
|
|
----
|
|
const { Client, Transport } = require('@elastic/elasticsearch')
|
|
|
|
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`:
|
|
|
|
[source,js]
|
|
----
|
|
class MyTransport extends Transport {
|
|
request (params, options, callback) {
|
|
// your code
|
|
return super.request(params, options, callback)
|
|
}
|
|
}
|
|
----
|
|
|
|
==== Supported content types
|
|
|
|
- `application/json`, in this case the transport will return a plain JavaScript object
|
|
- `text/plain`, in this case the transport will return a plain string
|
|
- `application/vnd.mapbox-vector-tile`, in this case the transport will return a Buffer
|
|
- `application/vnd.elasticsearch+json`, in this case the transport will return a plain JavaScript object
|
|
|