Функция обратного вызова не выполняется - PullRequest
0 голосов
/ 05 мая 2018

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

Пример: mailer.sendEmail(res, req.body, token).

Нет ошибок в консоли. Может быть что-то не так с тем, как я передаю параметры.

Может кто-нибудь помочь?

server.js

app.post('/signup-user', upload.single('avatar'), (req, res) => {
    let sSignupUserImagePath = req.file.path.split("public/").pop()
    Object.defineProperty(global, "sSignupUserImagePath", {
        value: sSignupUserImagePath
    })
    let token = jwt.sign({
        username: req.body.email,
    }, 'supersecret', {
        expiresIn: 240
    });
    user.signupUser(req.body, (err) => {
        if (!err) {
            mailer.sendEmail(res, req.body, token)
        }
    })
})

user.js

var user = {}

user.signupUser = (jUserData, res) => {

    var aData = [
        null,
        jUserData.first_name,
        jUserData.last_name,
        jUserData.email,
        jUserData.mobile_number,
        sSignupUserImagePath,
        0
    ]
    var sQuery = 'INSERT INTO users VALUES (?, ?, ?, ?, ?, ?, ?)'

    db.run(sQuery, aData, (err) => {
        if (err) {
            console.log('BAD, user not registered')
            return res(err)
        }
        console.log('GREAT, user registered')
    });
}

1 Ответ

0 голосов
/ 05 мая 2018

Вы не вызываете функцию res, которую передаете функции, когда выполняете их; если все идет хорошо, вы должны позвонить:

db.run(sQuery, aData, (err) => {
    if (err) {
        console.log('BAD, user not registered')
        return res(err)
    }
    console.log('GREAT, user registered');
    res(null); //or also res(); works
});
...