【发布时间】:2014-01-19 06:22:42
【问题描述】:
我正在NodeJS 上开发我的第一个测试应用程序并遇到以下问题:我无法弄清楚如何在ExpressJS 框架中正确组织路由。例如我想做注册,所以我创建了这样的路线:
app.get('/registration', function (request, response) {
if (request.body.user.email && request.body.user.password) {
var user = new User();
var result = user.createNew(request.body.user.email, request.body.user.email);
// do stuff...
}
response.render('registration.html', config);
});
用户函数看起来像这样(不是最终的):
function User() {
var userSchema = new mongoose.Schema({
'email': {
'type': String,
'required': true,
'lowercase': true,
'index': { 'unique': true }
},
'password': {
'type': String,
'required': true
}
});
var userModel = mongoose.model('users', userSchema);
this.createNew = function(email, password) {
var new_user = new users({'email': email, 'password': password});
new_user.save(function(err){
console.log('Save function');
if (err)
return false;
return true;
});
}
}
我尝试做一些结构化的应用程序,比如 MVC。问题是save 方法是异步的,每次我注册新用户时都会得到registration.html 而无需等待结果。
基本上我需要在save回调中运行路由回调,但是如何以正确的方式执行此操作我自己无法弄清楚...
【问题讨论】:
标签: node.js express routes mongoose