In src/index.js
, import the Elasticsearch library and initiate a client as we did before; then, in the request handler for POST /users
, use the Elasticsearch JavaScript client's index
method to add the payload object into the Elasticsearch index:
import elasticsearch from 'elasticsearch'; const client = new elasticsearch.Client({ host: `${process.env.ELASTICSEARCH_PROTOCOL}://${process.env.ELASTICSEARCH_HOSTNAME}:${process.env.ELASTICSEARCH_PORT}`, }); ... app.post('/users', (req, res, next) => { ... client.index({ index: 'hobnob', type: 'user', body: req.body }) }
The index
method returns a promise, which should resolve to something similar to this:
{ _index: 'hobnob', _type: 'users', _id: 'AV7HyAlRmIBlG9P7rgWY', _version: 1, result: 'created', _shards: { total: 2, successful: 1, failed: 0 }, created: true }
The only useful and relevant piece of information we can return to the client is the newly auto-generated _id
field...