сбой веб-браузера при использовании mysql подготовленного запроса с nodejs - PullRequest
0 голосов
/ 02 мая 2020

Я хочу вернуть результат запроса в БД, который, как мне кажется, будет обещанием, а затем использовать это обещание в другом файле. Вот код моей модели (Пользователь. js):

User.prototype.login = function () {
    return new Promise((resolve, reject) => {
        pool.execute('SELECT * FROM `users` WHERE `username` = ? AND `password` = ?', [this.data.username, this.data.password], (err, attemptedUser) => {
            if (err) {
                pool.release();
               return reject(err);
            } else {
                pool.release();
               return resolve(attemptedUser);
            }
        });
    });
}

и код в моем файле контроллера (userController. js):

const User = require('../models/User');
exports.login = (req, res) => {
let user = new User(req.body);
    user.login()
        .then((result) => {
            res.send(result);
        })
        .catch((err) => {
            res.send(err);
        });
};

Но когда я нажимаю на кнопку входа, страница не go на указанный URL-адрес и продолжает работать до CRA sh. В чем проблема?

ОБНОВЛЕНИЕ-1 Это моя БД. js:

const mysql = require('mysql2/promise');
const dotenv = require('dotenv');
dotenv.config();

const pool = mysql.createPool({
    host: process.env.DB_HOST,
    user: process.env.DB_USERNAME,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME,
    connectionLimit: 100
});

module.exports = pool;

1 Ответ

0 голосов
/ 03 мая 2020

Основная проблема, которую я вижу здесь, заключается в том, как вы экспортируете модули. Вы делаете exports вместо module.exports и поэтому, когда вы импортируете User, вы не импортируете функцию, а импортируете пустой объект JavaScript, поскольку для module.exports установлено значение default.

Итак, в своем файле модели пользователя убедитесь, что вы экспортируете свою модель следующим образом:

module.exports = User;

Затем в контроллере пользователя убедитесь, что вы экспортируете свой метод входа в систему следующим образом:

module.exports.login = (req, res) => ...

Остальная часть вашего кода выглядит так, как будто он должен работать правильно при правильном экспорте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...