#node.js #express #elasticsearch
Вопрос:
Когда я запускаю следующий код в NodeJS:
app.post('/users', (req, res, next) => {
client.index({
index: 'hobnob',
type: 'user',
body: req.body,
}).then((result) => {
res.status(201);
res.set('Content-Type', 'text/plain');
res.send(result._id);
}).catch(() => {
res.status(500);
res.set('Content-Type', 'application/json');
res.json({ message: 'Internal Server Error' });
});
});
Я получаю следующий журнал трассировки:
**Elasticsearch TRACE: 2021-05-15T02:52:22Z
-> POST http://localhost:9200/}/hobnob/_doc?type=user
{
"email": "e@ma.il",
"password": "password"
}
<- 200
{
"_index": "}",
"_type": "hobnob",
"_id": "_doc",
"_version": 32,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 31,
"_primary_term": 2
}
Elasticsearch DEBUG: 2021-05-15T02:52:22Z
Request complete**
Скриншот журнала трассировки здесь
Здесь в ответе «_id» — это «_doc», он не генерирует уникальный _id.
Я использую: NodeJS Версия: 14.16.0 Экспресс-версия: 4.17.1 Elasticsearch версия 7.12.1 Клиент Elasticsearch: «npm i elasticsearch» версия: 16.7.2
Комментарии:
1. URL — адрес, на который размещен документ, кажется неправильным
/}/hobnob/_doc
.type: 'user'
Кстати, вы не должны указывать, что это устарело