node.js" undefined"神秘地出现了

时间:2011-07-22 10:25:27

标签: javascript node.js undefined

我有以下node.js文件:

//test.js:
var hash=require('./hash');
var sys=require('sys');

sys.puts(hash.hash("asdf","asdf"));

//hash.js:
var exec=require('child_process').exec;
var sys=require('sys');

exports.hash=function(data,hash_type){
        exec('pwd',function callback(error,stdout,stderr){
                sys.puts(stdout);
        });
}

当我node test.js时,我得到以下输出:

eamorr@Compaq6000:~/Desktop/simple-hash$ node test.js 
undefined
/home/hynese/Desktop/nodejs-simple-hash

为什么我会“未定义”???我真的被困在这里......

非常感谢任何帮助。

非常感谢,

1 个答案:

答案 0 :(得分:3)

变化:

sys.puts(hash.hash("asdf","asdf"));

只是:

hash.hash("asdf","asdf");

您正在输出hash.hash的返回值,但由于您没有提供返回值,因此语言将返回undefined,然后输出到屏幕。您已经在回调中输出了系统命令的结果,因此您不需要另一个sys.puts

作为旁注,您可能不需要命名该回调函数callback