我有以下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
为什么我得到“未定义”???我真的被困在这里了...
非常感谢任何帮助。
提前非常感谢,
最佳答案
更改:
sys.puts(hash.hash("asdf","asdf"));
只是:
hash.hash("asdf","asdf");
您正在输出 hash.hash
的返回值,尽管由于您没有提供返回值,所以语言返回 undefined,然后将其输出到屏幕。您已经在回调中输出了系统命令的结果,因此您不需要另一个 sys.puts
。
顺便说一句,您可能不需要将该回调函数命名为 callback
。
关于javascript - node.js "undefined"神秘出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6788652/