我想使用execSync在NodeJS 0.12中添加的方法,但仍然在控制台窗口中输出我运行Node脚本的输出.
例如,如果我运行具有以下行的NodeJS脚本,我希望在控制台内看到rsync命令的完整输出"live":
require('child_process').execSync('rsync -avAXz --info=progress2 "/src" "/dest"');
Run Code Online (Sandbox Code Playgroud)
我明白execSync返回命令的输出,我可以在执行后将其打印到控制台,但这样我没有"实时"输出...
在node.js中,我想找到一种获取Unix终端命令输出的方法.有没有办法做到这一点?
function getCommandOutput(commandString){
// now how can I implement this function?
// getCommandOutput("ls") should print the terminal output of the shell command "ls"
}
Run Code Online (Sandbox Code Playgroud) 我试图将此函数的输出作为字符串返回,但它仍然以未定义的形式返回.我哪里错了?
function run(cmd){
var spawn = require('child_process').spawn;
var command = spawn(cmd);
var result = '';
command.stdout.on('data', function(data) {
result += data.toString();
});
command.on('close', function(code) {
return result;
});
}
console.log(run('ls'));
Run Code Online (Sandbox Code Playgroud) node.js/javascript中是否有可供个人mongoimport在代码中使用的库?
根据我的理解,mongoimport有点像.exe,你必须先执行它才能使用它的文本输入环境.
是否可以在我的代码中执行mongoimport,然后在我的代码中直接解析我需要的任何命令?
我目前的算法包括:
fs.appendFile('log.txt',JSON.stringify(obj, null, 2));
Run Code Online (Sandbox Code Playgroud)
obj是一个对象,它指定JSON.stringify使用resnode.js 的方法解析哪些函数(它请求HTTP响应)
var obj = {};
obj.url = hostNames[i];
obj.statusCode = res.statusCode;
obj.headers = res.headers;
Run Code Online (Sandbox Code Playgroud)
然后我使用mongoimport将这个JSON文档导入我的MongoDB.
mongoimport --host localhost -db scrapeapp -collection scrape --file log.txt --jsonArray
这种方法显然效率低下.我想一气呵成地做所有这些步骤.
帮助赞赏
现在可以在正在开发的Node.js版本中使用同步子进程调用(即不稳定).这对于编写shell脚本来说是个好消息,因为它允许这样的代码:
var history = child_process.execSync('git log', { encoding: 'utf8' });
process.stdout.write(history);
Run Code Online (Sandbox Code Playgroud)
但是,对于针对当前稳定版本的Node.js(v0.10.30)的代码,除了通过外部库之外,不能使用同步子进程调用.两个最流行的这样的库似乎是shelljs和exec-sync.
对于打算与v0.10.x一起使用的shell脚本,必须调用二进制文件或其他可执行文件并处理它们的输出,这两个库或其他类似库的相对优缺点是什么?如果合适,请提供代码示例以供说明.
我发现自己处于一种情况,我必须运行一个命令,例如 node compile.js
该.js文件需要运行以下命令
browserify -t jadeify client/app.js -o bundle.js
安装了所有依赖项,通过在CLI中运行此命令可以正常工作,只需要弄清楚如何在节点脚本中执行它.
我们还在package.json里面包含了类似的内容
"script" : [ "compile": "browserify -t jadeify client/app.js -o bundle.js" ]
当你cd /project && npm run compile通过ssh 执行而不是通过exec 执行时,这非常有效
谢谢
有没有办法从 node.js 服务器在操作系统上设置日期/时间?
有很多关于如何更改时区的示例,但我需要更改 PC 的实际日期/时间
我有一个角度应用程序(角度种子应用程序),它应该调用nodejs(web-server.js)中的函数.nodejs中的函数只是调用批处理文件.
node.js ×9
javascript ×4
shell ×2
amazon-s3 ×1
angularjs ×1
browserify ×1
datetime ×1
html ×1
json ×1
mongodb ×1
mongoimport ×1
popen ×1
request ×1
time ×1