首页 > 解决方案 > 如何使新的 elasticsearch node.js 客户端仅在承诺中返回正文?

问题描述

“API 调用的返回值将不再是回调的主体、状态代码和标头,而只有承诺的主体。新的返回值将是一个包含主体、状态代码、标头、警告和元数据的唯一对象, 对于回调和承诺。"

如果我对结果进行字符串化并将结果存储在 redis 中,这是一个问题(现在,当我从 redis 取回值时,我需要进行 JSON 解析)。无论如何我可以在承诺上打开“仅限正文”模式吗?

标签: node.jselasticsearch

解决方案


不幸的是,没有。没有办法只接受身体。正如你所提到的,这将是回应,

{
  body: object | boolean
  statusCode: number
  headers: object
  warnings: [string]
  meta: object
}

最好在将响应存储到 Redis 之前做到这一点,您可以像这样存储它,

const {body} = await client.search({
  index: 'my-index',
  body: { foo: 'bar' }
})
// Now you can store the body in Redis

或者当你从 Redis 获取响应对象时,你可以这样做,

const {body}=JSON.parse(fetchFromRedis(id));

推荐阅读