Answer the question
In order to leave comments, you need to log in
How to return response from controller function in post express?
There is a controller function, it is in 1 file
export function loginProtect(data) {
// ищем в базе совпадения по имейлу
UserModel.findOne({ user_email: data.user_email }, function (err, user) {
if (err) return err;
// далее если совпадение нашлось сверяешь хэш пароль с тем что был прислан в функцию
bcrypt.compare(data.user_password, user.user_password, function (err, res) {
if (err) return err;
// res это результат работы, возвращает true или false
return res;
});
});
}
app.post('/api/login', (req, res) => {
const user = {
user_data: req.query
}
// отправляем данные в контроллер
UserController.loginProtect(req.query);
// вот всё что ниже должно исполняться на основе ответа из функции выше
jwt.sign({ user: user.user_data }, process.env.SECRET_FOR_JWT, (err, token) => {
res.json({
success: true,
token
})
})
});
Answer the question
In order to leave comments, you need to log in
export function loginProtect(data) {
return new Promise((resolve, reject) => {
// ищем в базе совпадения по имейлу
UserModel.findOne({ user_email: data.user_email }, function (err, user) {
if (err) return reject(err);
// далее если совпадение нашлось сверяешь хэш пароль с тем что был прислан в функцию
bcrypt.compare(data.user_password, user.user_password, function (err, res) {
if (err) return reject(err);
// res это результат работы, возвращает true или false
return resolve(res);
});
});
});
}
app.post('/api/login', (req, res) => {
const user = {
user_data: req.query
}
// отправляем данные в контроллер
UserController.loginProtect(req.query).then(result => {
// handle success
jwt.sign({ user: user.user_data }, process.env.SECRET_FOR_JWT, (err, token) => {
res.json({
success: true,
token
});
});
}).catch(err => {
// handle error
});
});
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question