Я только начал с nodejs с реактивным интерфейсом. Но у меня есть некоторые проблемы при аутентификации пользователя. Я пытаюсь получить пользователя с указанным c адресом электронной почты и паролем. Мой API для этого выглядит следующим образом: я создал три файла контроллера, службы и файлы маршрутизатора для любого API-запроса.
//userServices.js
const db = require('./../../db-connection/connection')
userAuth: (params, callback) => {
db.query(`SELECT * FROM Users WHERE email = ?`,[params.email],
(error, result, fields) => {
if(!error) {
console.log('result = ' + result[0]);
return callback(error, result[0])
}
else
return callback(error)
});
}
И это мой файл userController js.
//userController.js
const {create, userindex, userAuth} = require('./UserServices');
const {genSaltSync, hashSync, compareSync} = require('bcrypt');
const {sign} = require('jsonwebtoken');
userLoginAuth: (req, res) => {
const body = req.body;
userAuth(body, (error, results) => {
if (error)
console.log(error);
if (!results) {
return res.json({
success: 0,
data: 'Invalid email or password'
})
}
const result = compareSync(body.password, results.password);
if(!result) {
results.password = undefined;
const jsontoken = sign({result: results}, 'choegyel123', {
expiresIn: '1h'
});
return res.json({
success: 1,
message: 'Login successful',
token: jsontoken
})
} else
console.log('password' + result.password)
return res.json({
success: 0,
error: 'Invalid email or password'
});
});
}
Но проблема в файле userServices. js. Мой sql запрос выполнен правильно, но в обратном вызове для «результатов» я получаю странный объект. Я думаю, что я должен получить некоторый массив соответствующих данных из таблицы базы данных, и в моем журнале консоли я получаю [объектный объект]. Я не уверен, что это на самом деле означает, и я также уверен, что это блокировщик, так как я не могу восстановить пароль с этим объектом в моем userController. Любая помощь будет принята с благодарностью. Спасибо!