HapiJS - MySQL: запрос выполнен успешно, но почтальон возвращает внутреннюю ошибку сервера - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь создать систему аутентификации с использованием Hapi и MySQL, я тестирую ее с помощью почтальона и также регистрирую вывод запроса на терминальной консоли.

Дело в том, что консоль успешно выводит запрос, однако почтальон возвращает An internal server error occurred, и консоль не возвращает никаких ошибок. Я отправлю функцию обработчика моего маршрута, найденную ниже:

    handler: async function(req, h) {

        const pass = req.payload.password;
        const username = req.payload.username;
        var res;
        res = await con.query("SELECT * FROM `Person` WHERE `Username` = ?", username,
            (err, rows, fields) => {
                if(err) {
                    console.log("Query Error: ", err, "!");
                    return err;
                } else {
                    console.log("Query Successful!");
                    const person = JSON.parse(JSON.stringify(rows[0]));
                    console.log(person);
                    if(person != null) {
                        //const hashedPass = crypto.pbkdf2Sync(req.payload.password, person.salt, 10000, 64, 'sha1').toString('base64');
                        if(pass != person.Password) {
                            return boom.badRequest('Invalid username/password.');
                        } else {
                            var token = jwt.sign(person, config.jwtKey);
                            person.token = token;
                            return person;
                        }
                    } else {
                        return boom.badRequest('Invalid username/password. Failed.');
                    }            
                }
            }           
        );
        return res;
    }

1 Ответ

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

Я решил эту проблему, добавив еще один node_module, который инкапсулирует обычные функции mysql модуля узла с обещаниями. Пакет называется promise-mysql.

...