0

您好,我想将 xively 与 curl 功能一起使用。我用 nodejs 用我的树莓派来检索我的 arduino 的值。我想知道您是否知道如何将 curl 与 nodejs 一起使用,因为经过几次尝试我都失败了。感谢

4

2 回答 2

1

如果您指的是PHP curl,那么您只需要知道 node.js 没有“curl”(代表“客户端 URL”)。它具有用于发出 http 请求的http模块requestget方法。与 PHP 卷曲具有相同的目的。

您仍然可以使用 执行 shell 脚本child_process.exec,但这样做可能会冒您将通过 exec 运行的应用程序可能依赖于平台的风险,在这种情况下,它可能在 Windows 上运行,而在 linux 或任何类似问题上不起作用。对于xively,您应该使用 http.request - 这将为您完成所有工作。而且它会更容易,因为从curlvia获取输出child_process.exec将比 through 困难得多http.request

因此,根据此处的文档:https
: //xively.com/dev/tutorials/curl/ 我已经使用 http.request 替代以查询他们的提要:

var data = JSON.stringify({
  title: 'My feed',
  version: '1.0.0'
});

var req = http.request({
  host: 'api.xively.com',
  path: '/v2/feeds',
  method: 'POST',
  headers: {
    'X-ApiKey': 'YOUR_API_KEY_HERE',
    'Content-Type': 'application/json',
    'Content-Length': data.length
  }
}, function(res) {
  res.setEncoding('utf8');
  console.log('Status Code: ' + res.statusCode);
  console.log('Headers:');
  console.log(res.headers);

  var buffer = '';
  res.on('data', function(chunk) {
    buffer += chunk;
  });
  res.on('end', function() {
    console.log('complete');
    console.log(buffer);
  });
});

res.write(data);
res.end();

我在浏览器中写了这段代码,不确定是否完全正确,请尝试一下,如果有什么问题,我会更正上面的代码。
如您所见,它支持 CURL 提供的所有功能,并且从使用角度来看更加灵活和美观。

随意使用它们来进行 HTTP 调用。

于 2013-07-11T12:49:38.697 回答
0

但是可以执行脚本外壳吗?

curl是如何在nodejs中使用的?curl --request PUT \ --data-binary '{"datastreams":[ { "id": "1'" , "tags": "'1", "current_value": "12" }]}' \ - -header "X-ApiKey:Q" \ --verbose \ https://api.xively.com/v2/feeds/

于 2013-07-12T06:11:16.283 回答