【发布时间】:2012-11-29 12:37:50
【问题描述】:
我刚开始通过创建一个简单的博客网站来试验 Node.js Express 和 Mongoose。
我正在尝试构建一些路由来执行一些简单的数据库操作,但我对异步函数以及我的代码是否每次都能正确执行感到困惑。
这基本上就是我所拥有的:
app.get('/createUser', function(req, resp) {
var newUser = new User({name: 'abc123', pass: 'password321'});
newUser.save(function(err){ // will this callback always be called correctly?
if(err) resp.send('ERROR!');
resp.send('SUCCESS!');
});
});
所以我希望将响应写为“错误!”对于保存中的任何错误,以及“成功!”保存成功时。但是,我对这些功能的时间安排感到困惑。 get() 函数会在 save() 完成之前返回吗?如果是这样,响应会不会被正确写出?
【问题讨论】:
-
是的,它会一直触发。别介意我的旧评论。您的回调将始终触发。
-
这样做是为了避免继续执行到下一行
if(err) return resp.send('ERROR!'); -
如果 resp.send() 继续发送信息,连接何时关闭?
标签: javascript node.js asynchronous express mongoose