节点:ShellJS不使用命令行工具

时间:2015-08-13 17:38:15

标签: javascript node.js bash shell

如果我执行shell.exec('http'),我会获得httpie的帮助,这是我使用的请求库。但是,如果我添加一个参数,如下所示,shelljs永远不会调用回调。

var shell = require('shelljs');

shell.exec('http http://www.example.com/', {async: true, silent: false}, function(data){
  console.log(data);
})

如果我使用curl而不是http,则上述示例可行。有什么想法不与http合作?

1 个答案:

答案 0 :(得分:2)

添加ignore-stdin选项

var shell = require('shelljs');
shell.exec('http --ignore-stdin http://www.example.com/', {async: true, silent: false}, function(data){
  console.log(data);
});

--ignore-stdin选项阻止HTTPie从stdin读取数据,这在非交互式调用期间通常是不可取的。

您可以在httpie

的脚本部分阅读更多内容