我有以下两个Node.js文件:
//test.js
var hash=require('./hash');
var sys=require('sys');
hash.hash("asdf",function(param){
sys.puts(param);
});
和
//hash.js:
var exec=require('child_process').exec;
var sys=require('sys');
exports.hash=function(data,callback){
exec("./a.out "+data,function callback(error,stdout,stderr){
callback(stdout);
});
}
如您所见,我正在尝试在test.js中提供stdout
麻烦的是,当我运行node test.js
时,我收到以下错误:
eamorr@Compaq6000:~/Desktop/simple-hash$ node test.js
node.js:134
throw e; // process.nextTick error, or 'error' event on first tick
^
RangeError: Maximum call stack size exceeded
任何人都对我可能做错了什么有任何想法?
非常感谢,
编辑:解决方案:将内部“回调”重命名为“callback2”或其他内容......感谢Idan K指出这一点。
答案 0 :(得分:1)
当您致电exec
时,您正在命名匿名函数callback
。它与hash
的第二个参数同名,因此递归。