初接触Nodejs 遇到的疑惑
初次接触这门神奇的语言 觉得非常棒的设计思想。但是对于js的某些知识也不熟悉不知道从何查起 特来求助。我使用mongoose的进行数据操作的时候。
//我想根据查询出一个findOne查询出一个数据:
var findByOne=function(query){
db.findOne(query,function(err,data){
return data;//这个数如何返回出去呢?
//我想返回给调用这个findByOne函数的使用者
});
};
2 回复
- 不应该返回去然后处理,因为这是异步编程模式,你如果在这个function之后立即使用,可能会提示这个值是undefined.因为异步是立即返回的,可能回调函数还没被回调时,你的返回值又被下一条用上了, 这时就是undefined了
- 我感觉正确的写法应该在这个回调函数里对data做相应的处理,而不是同步编程模式中的先赋值再处理
- 当然你也可以用同步编程模式,要用别的库async之类的,但是学nodejs就得了解这种异步编程模型 仅供参考
谢谢您的回复。我明白了 是在find方法的callbak中作处理 我去改一下