2013-10-18 66 views
3
function add(post) 
{ 
    var word = new KeyWord({ keyword: post.keyword});  
    word.save(function (err, word) 
    { 
     if(err) 
     { 
      if(err.code==11000) 
       return post.keyword + ' is already added.'; 
     } 
     else 
      return 'Added : ' + post.keyword; 
    }); 
} 

当我试图读取add函数的返回值时,它什么都不返回。
而且当我试图把消息放入变量并从外部返回时也给出空值。如何在node.js中将字符串从回调函数返回到根函数?

回答

6

简而言之,你不能。从这样的功能得到值,你必须使用一个回调:

function add(post, callback) { 
    var word = new KeyWord({keyword: post.keyword});  
    word.save(function(err, word) { 
    if (err) { 
     if (err.code==11000) callback(post.keyword + ' is already added.'); 
     else callback('Added : ' + post.keyword); 
    } 
    }); 
} 

你会再使用该函数是这样的:

add(post, function(result) { 
    // return value is here 
}); 
+1

谢谢老兄.... –