Node.js 如何获得等效的nodejs Requst to CURL命令?

Node.js 如何获得等效的nodejs Requst to CURL命令?,node.js,curl,Node.js,Curl,我有以下命令 curl -u YOUR_API_KEY:x \ -H 'Content-Type: application/json' \ -X POST \ -d '{"first_name":"Tony", "kind":"person", "contact_name":"Stark"}' \ 'https://ACCOUNT_NAME.quadernoapp.com/api/contacts.json' 我想使用请求模块在NodeJS中执行此请求。 这是我写的代码 var opt

我有以下命令

curl -u YOUR_API_KEY:x \
 -H 'Content-Type: application/json' \
 -X POST \
 -d '{"first_name":"Tony", "kind":"person", "contact_name":"Stark"}' \
 'https://ACCOUNT_NAME.quadernoapp.com/api/contacts.json'
我想使用请求模块在NodeJS中执行此请求。 这是我写的代码

var options = {
    uri: 'https://ACCOUNT_NAME.quadernoapp.com/api/contacts.json',
    json: true,
    auth: {
      user: 'YOUR_API_KEY'
    }
    data: {"first_name" : "Tonsdfasdy", "kind":"peasdfarson", "contact_name":"Staasdfadfadrk"}
  }

request.post(options, function cb(){})

但它并没有得到正确的认证。这里的错误是什么?

您在
cURL
命令中使用HTTP基本身份验证,其中
用户名
密码
提供了
-u
选项,并由
分隔,因此您需要为代码提供密码,如下所示:

var options = {
  uri: 'https://ACCOUNT_NAME.quadernoapp.com/api/contacts.json',
  json: true,
  auth: {
    user: 'YOUR_API_KEY',
    password: 'x'
  },
  body: {
    first_name : "Tonsdfasdy", kind:"peasdfarson", contact_name:"Staasdfadfadrk"
  }
}

request.post(options, function cb(){})
请尝试在名为
body
的属性中传递JSON对象,而不是
data
(由于
JSON:true
选项,它将转换为JSON字符串)

您可能还需要检查此选项:


希望这有帮助

您是否尝试从回调函数中获取日志:
function(err,res,body){if(err){return console.log(err);}console.log(body);}
此外,您是否可以尝试在名为
body
的属性中发送JSON,而不是
data
?例如:
body:{“名字”:“Tonsdfasdy”,“种类”:“peasdfarson”,“联系人姓名”:“Staasdfadfadrk”}