【发布时间】:2014-06-16 05:39:25
【问题描述】:
我有一个 grep 函数,我用它来分离一些数据。
我遇到了一个问题,我不需要将数据输出到控制台,而是将其存储到变量中。
例如,这是我的实际功能。
function funGrep(cmd,callback,search,args){
exec(cmd,function(err,stdout){
if(!stdout)
return;
var lines = stdout.toString().split(EOL);
var re = new RegExp(search,args);
for(var line in lines){
var results = lines[line].match(re);
if(results){
for(var i = 0; i < results.length; i++){
callback(results[i]);
}
}
}
});
}
这是我实际调用的函数。
funGrep("ping -n 3 google.com",console.log,"time=[0-9\.]+ ?ms");
我如何不将输出记录到控制台,而是将其分配给输出之类的变量。
谢谢!
【问题讨论】:
-
那么,而不是
console.log传递一个函数,其中参数可作为变量使用?问题是什么?你当然是cannot simplyreturnit。 -
传递一个作为回调的函数。请注意它是异步运行的。
-
我只需要能够访问数据而不是将其记录到控制台。有没有办法做到这一点,无论是否修改实际功能?如果我看起来像个菜鸟,我会提前道歉,因为我在节点
-
我不明白你的意思@Scimonster,我怎么能在管道内调用函数?
-
不是传递console.log,而是传递一个不同的函数,接受一个参数,这个参数就是数据。
标签: javascript node.js variables output