Как передать логин и пароль через модули в Express - PullRequest
0 голосов
/ 14 апреля 2020

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

    var config = {
        server: "",
        database:"",
        options: {
            "enableArithAbort": true
        },
        authentication: {
            type: "azure-active-directory-password",
            options: {
                userName: name, // email
                password: password // password
            }
        },
        pool: {
            max: 50,
            min: 0,
            idleTimeoutMillis: 1800000
        }
        module.exports = {
        getPool: function (req, res, next) {
            if (pool) return pool; // if it is already there, grab it here
            name = req.session.email
            password = req.session.password
            pool = new mssql.ConnectionPool(config);
            return pool;
        }
}

И в модуле входа в систему:

router.post("/", (req, res) => {
        req.session.email = req.body.email;
        req.session.password = req.body.password;
        pool.connect(function(err){
            if (err) {
                throw err
            } else {
                console.log("connect!")
            }
        })
    })

Проблема в том, что я не могу запустить сервер:

..middleware\db.js:35
        name = req.session.email
                   ^

TypeError: Cannot read property 'session' of undefined

Сейчас я создаю пул соединений на каждом маршруте, и мне не нужно передавать какие-либо данные между модулями, но я считаю, что это плохо.

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