初接触Nodejs 遇到的疑惑
发布于 2年前 作者 g3253769 749 次浏览

初次接触这门神奇的语言 觉得非常棒的设计思想。但是对于js的某些知识也不熟悉不知道从何查起 特来求助。我使用mongoose的进行数据操作的时候。

//我想根据查询出一个findOne查询出一个数据:
var findByOne=function(query){
    db.findOne(query,function(err,data){
        return data;//这个数如何返回出去呢?
                    //我想返回给调用这个findByOne函数的使用者
        });
};
2 回复
  1. 不应该返回去然后处理,因为这是异步编程模式,你如果在这个function之后立即使用,可能会提示这个值是undefined.因为异步是立即返回的,可能回调函数还没被回调时,你的返回值又被下一条用上了, 这时就是undefined了
  2. 我感觉正确的写法应该在这个回调函数里对data做相应的处理,而不是同步编程模式中的先赋值再处理
  3. 当然你也可以用同步编程模式,要用别的库async之类的,但是学nodejs就得了解这种异步编程模型 仅供参考

谢谢您的回复。我明白了 是在find方法的callbak中作处理 我去改一下

回到顶部