2011-07-22 118 views
0

我有以下Node.js的文件: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,我得到下面的输出:

[email protected]:~/Desktop/simple-hash$ node test.js 
undefined 
/home/hynese/Desktop/nodejs-simple-hash 

为什么我得到“undefined”?我真的卡在这里...

任何帮助,非常感谢。

提前许多感谢,

回答

3

变化:

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

只是:

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

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

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

+0

Doh! *刘海桌子* *非常感谢... – Eamorr

+0

@Eamorr,一种快乐:) – davin