我无法在续集回调函数中使用连接闪存。
router.route('/')
.post(function(aRequest, aResponse) {
var data = aRequest.body;
models.users.findOne({
where: {
email: data.email
}
}).then(function (aUser) {
if (!aUser) {
bcrypt.hash(data.password, null, null, function(err, hash) {
if(err) {
return next(err);
}
models.users.create({
firstname : data.firstname,
lastname : data.lastname,
email : data.email,
password : hash
}).then(function () {
aRequest.flash('success', 'User successfully created.');
}).done(function () {
aResponse.redirect('/login');
});
});
}
else {
// aRequest.flash('error', 'This email address is already registered');
aResponse.redirect('/login');
}
});
});
以上是我当前的代码,尝试了一些变体,在.then()中调用flash和重定向,尝试2 .then()和现在的.done()。
我收到以下错误:
未处理拒绝TypeError:undefined不是函数 在Instance.set(/home/node/shared/Heroku/landbou/node_modules/sequelize/lib/instance.js:348:68)
通过删除aRequest.flash(...)可以轻松解决这个问题。
是的,' router.use(flash()); '被召唤到更高的位置。
一切都在继续,所以它不是应用程序破坏错误,但我确实需要消息闪烁,否则我必须创建额外的浪费路由来处理用户注册的成功/失败。