日期:2014-05-16  浏览次数:20275 次

吕小小 关于nodejs操作mongodb问题
RT 我用mongoose连接mongodb。 一个简单的例子,之前的连接数据库我就给省了:

function Register (realname,email,password) {
  var post = new users();
  post.realname = "姚笛";
  post.email = "yd@123.com";
  post.password = "123456";

  post.save(function (err) {
  if (!err){
  console.log('保存成功!');
  //return true;
  }else{
  console.log('保存失败!');
  //return false;
  }
  });

}

 

在做完save()操作之后,进行判断,成功之后,我想返回一个true,否则false. 但是在另一个文件接收之后,返回的确实undefined 如若不做save()操作的话,只是单纯判断则是能返回true/false的。可能是其中的原理不太明白,求高手解答下疑惑。我实在centOS下写的。

------解决方案--------------------
"但是在另一个文件接收之后,返回的确实undefined 如若不做save()操作的话,只是单纯判断则是能返回true/false的。可能是其中的原理不太明白,求高手解答下疑惑。我实在centOS下写的。"
有疑问:1什么是"但是在另一个文件接收后"
save操作不就是进行保存的吗,如果你没有做save()操作,那么怎么返回的true
建议:1,在ff下试试console.log(err)看看这个对象是个什么东西
2,还有一个eval()函数,将接收到的err进行序列化,转换成对象,也可以试试
------解决方案--------------------
我也不是特别精通,刚才想到一点,是不是作用域的原因啊?save(function (err) {});返回的值应该不能被外部调用吧?记得以前写的时候,里面的数值是不能够被外面调用的。