если в node js не работает условие - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь реализовать то, что после входа в систему система проверит роль пользователя и соответственно перенаправит пользователя. 1- Администратор 2- Поле роли пользователя имеет целочисленный тип. ниже мой код

router.post('/signin', function (req, res, next) {
    session_store = req.session;
    req.assert('Emailid', 'Please fill register Email Address').notEmpty();
    req.assert('Emailid', 'Email not valid').isEmail();
    req.assert('password', 'Please fill the Password').notEmpty();
    var errors = req.validationErrors();
    if (!errors) {

            Emailid = req.sanitize('Emailid').escape().trim();
            password = req.sanitize('password').escape().trim();

        var query = 'select * from userdetails where Emailid=? and password=?';
        var sql='select role from userdetails where Emailid=?'
            db.query(query, [Emailid, password], function (err, rows) {

                if (err) {

                    var errornya = ("Error Selecting : %s ", err.code);
                    console.log(err.code);
                    req.flash('msg_error', errornya);
                    res.redirect('/login-Form');
                } else {
                    if (rows.length <= 0) {

                        req.flash('msg_error', "Wrong email address or password. Try again.");
                        res.redirect('/login-Form');
                    }
                    else {
                        session_store.is_login = true;
                        session_store.user = Emailid;
                        db.query(sql, Emailid, function (err, result) {
                            if (err) throw err
                            else {

                                if (result == 1) { // facing issue here. It is directly going to else block though the user role is 1 in the mysql table
                                    console.log(result)
                                    res.redirect('/Dashboard');
                                }
                                else {

                                    res.redirect('/Audit-Record');
                                }

                            }
                        });


                    }
                }

            });
        }

    else {


        res.redirect('/login-Form');
    }
});

Я полагаю, я делаю некоторую ошибку при сравнении значения результата. Может кто-нибудь из вас, пожалуйста, проверьте и дайте мне знать, где я иду не так. Заранее спасибо!

1 Ответ

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

Проблема решена. На самом деле я сравнивал неправильно. нам нужно написать это так

else {
                        session_store.is_login = true;
                        session_store.user = Emailid;
                        db.query(sql, Emailid, function (err, result) {
                            if (err) throw err
                            else {

                                **if (result[0].role == 1)** {
                                    console.log(result)
                                    res.redirect('/Dashboard');
                                }
                                else {

                                    res.redirect('/Audit-Record');
                                }

                            }
                        }); 
...