【问题标题】:how to convert my curl with arguments to work in node.js如何将带有参数的 curl 转换为在 node.js 中工作
【发布时间】:2019-08-01 03:12:43
【问题描述】:

这里我有一个有效的 curl 命令,如下所示。

curl 用于搜索弹性搜索。

curl -X GET -H 'Content-Type:application/json' -u '(my_id):(my_password)' https://www.example.com/(elastic-search_node_name)/_search -d '
{"query":{"bool":{"must":[{"term":{"main.message.neworder":true}}],"must_not":[],"should":[]}},"from":0,"size":10,"sort":[],"aggs":{}}'

我正在尝试将其转换为在 node.js 中工作(使用 axio、request 或 node-libcurl)

但我不知道在哪里放置身份验证(-u 选项)和诸如 elastic_search_node 之类的额外选项。

谁能给我一些建议来解决这个问题?

【问题讨论】:

标签: node.js curl libcurl


【解决方案1】:

node-libcurl 变成这样:

const { Curl } = require('node-libcurl')

const data = {
  query: {
    bool: {
      must: [{ term: { "main.message.neworder": true } }],
      must_not: [],
      should: [],
    },
  },
  from: 0,
  size: 10,
  sort: [],
  aggs: {},
}
const dataJSON = JSON.stringify(data)

const curl = new Curl
curl.setOpt('URL', 'https://www.example.com/(elastic-search_node_name)/_search')
curl.setOpt('USERPWD', '(my_id):(my_password)')
curl.setOpt('POSTFIELDS', dataJSON)
curl.setOpt('CUSTOMREQUEST', 'GET')
curl.setOpt('HTTPHEADER',
  ['Content-Type: application/json'])

curl.on("end", function (statusCode, data, headers) {
  console.info(statusCode)
  console.info('---')
  console.info(data.length)
  console.info('---')
  console.info(this.getInfo('TOTAL_TIME'))

  this.close()
})

curl.on('error', function(error) => {
  console.error(error)
  this.close()
})
curl.perform()

或者如果你更喜欢异步/等待:

const { curly } = require('node-libcurl');

const data = {
  query: {
    bool: {
      must: [{ term: { "main.message.neworder": true } }],
      must_not: [],
      should: [],
    },
  },
  from: 0,
  size: 10,
  sort: [],
  aggs: {},
}
const dataJSON = JSON.stringify(data)

async function doRequest() {
  const { statusCode, data, headers } = await curly('https://www.example.com/(elastic-search_node_name)/_search', {
    customRequest: 'GET',
    httpHeader: ['Content-Type: application/json'],
    postFields: dataJSON,
    userPwd: '(my_id):(my_password)',
  })
  console.log(statusCode, data, headers)
}
doRequest()

【讨论】:

    猜你喜欢
    • 2016-11-19
    • 2021-03-09
    • 2017-12-31
    • 1970-01-01
    • 2015-09-09
    • 2018-06-07
    • 1970-01-01
    • 2019-09-01
    • 2015-08-10
    相关资源
    最近更新 更多