Использование connect-flash с sequelize

У меня возникли проблемы с подключением вспышки для работы в функции обратного вызова sequelize.

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');
            }
        });
});

Выше приведен мой текущий код, я пробовал несколько его вариантов, вызывая flash и перенаправление в.then(), пробовал 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 ());'зовется выше.

Все продолжается, так что это не ошибка приложения, но мне нужно, чтобы сообщения вспыхивали, в противном случае мне нужно создать дополнительные потерянные маршруты для обработки успеха / неудачи при регистрации пользователей.

0 ответов

Другие вопросы по тегам