node.js - 如何将带有参数的 curl 转换为在 node.js 中工作
问题描述
在这里,我有一个工作 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。
谁能给我一些建议来解决这个问题?
解决方案
With node-libcurl it becomes this:
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()
Or if you prefer async/await:
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()
推荐阅读
- python - 在数据框上使用 groupby().sum(),然后绘制带有标签的饼图?
- html - Sass 风格不适用于内容
- npgsql - 有没有办法覆盖 Azure DB for PostgreSQL 上的服务器配置“statement_timeout”?
- excel - 如何从下拉列表中自动选择一个值?
- excel - VBA Excel - 使用 URL 插入图片 - 凭据窗口
- c# - 从 C# 查询照片 SQLite 数据库时找不到排序规则
- javascript - 如何使用 keycodes 和 clearRect() 在画布中修复这个圆圈的绘制
- java - 审计:对子修改的父实体修订(Javers/Envers/... + Hibernate)
- javascript - 如果输入类型文件不是图像,则使用 jquery 脚本显示警报
- c - C 套接字,代理 GET 请求返回 404