有人可以帮我把这个Curl请求转换成node.js吗?

时间:2017-12-02 22:35:07

标签: node.js curl plaid

我正在使用Webhooks,我正在尝试从我的node.js代码运行一个Curl请求。我正在使用npm request 包来执行此操作。我无法找到将Curl请求转换为将发送请求的应用程序中的代码的正确方法。

这是卷曲请求:

curl -X POST https://tartan.plaid.com/connect \
  -d client_id=test_id \
  -d secret=test_secret \
  -d username=plaid_test \
  -d password=plaid_good \
  -d type=wells \
  -d options='{
      "webhook":"http://requestb.in/",
      "login_only":true }'

当我在终端中运行它时工作正常,因此我知道凭据有效并且它正在与服务器通信。

这是我的Node.js代码:

var request = require('request');

var opt = {
  url: 'https://tartan.plaid.com/connect',
  data: {
    'client_id': 'test_id',
    'secret': 'test_secret',
    'username': 'plaid_test',
    'password': 'plaid_good',
    'type': 'wells',
    'webhook': 'http://requestb.in/', 
    'login_only': true
  }
};

request(opt, function (error, response, body) {
  console.log(body)
});

它应该返回,但我得到的只是:

{
  "code": 1100,
  "message": "client_id missing",
  "resolve": "Include your Client ID so we know who you are."
}

所有凭据都来自Plaid网站,它们在我的终端中工作得很好,所以我认为这就是我编写导致问题的Node.js代码的方式。

如果有人可以帮助我找到正确的方法来编写节点代码,那么它就会完成curl请求在终端中所做的工作,这将是值得赞赏的!谢谢!

3 个答案:

答案 0 :(得分:1)

您可能希望在选项中使用form:代替data:。希望这会成功。

答案 1 :(得分:1)

request的默认方法是GET。您想要一个POST,因此您必须将其设置为参数。您还必须根据documentation将数据作为JSON发送。所以我相信这应该有效:

<div class="parent">
  <div class="tooltip"><a href="#">This</a> is a tooltip wannabe with a link.<br />You can go ahead and style it up so it looks more like a tooltip, or you could look into existing tooltip or popover plugins/libaries and use something that's tested cross-browser/cross-device. <br />
Intended as proof of concept.
  </div>
  <img src="https://source.unsplash.com/random/800x500">
</div>

答案 2 :(得分:1)

有关curl命令实际执行操作的说明,请参阅explainshell: curl -X -d

  • 您发送 POST 请求
  • 使用内容类型 application / x-www-form-urlencoded
  • 发送数据

要使用request进行复制,您必须相应地对其进行配置:

getCellView()

有关更多示例,请参阅application/x-www-form-urlencoded