如何将参数“username”传递给" /"路由器快递?

时间:2017-12-06 07:49:58

标签: node.js express

我在登录后路由器中有一个db操作,当db操作回调成功时,我得到了一个用户名值,以及如何将这个用户名传递给" /"路由器?

router.post('/login', (req, res)=> {
    var username = req.body.username;
    var password = common.md5(req.body.password + common.MD5_SUFFIX);
    db.query(`SELECT * FROM admin_table WHERE username='${username}'`, (err, data)=> {
        if (err) {
            console.log(err);
            res.status(500).send('database error').end();
        } else {
            if (data.length == 0) {
                res.status(404).send('no this admin').end();
            } else {
                if (data[0].password == password) {
                    req.session['admin_id']=data[0].ID;
                    res.redirect('/');

                } else {
                    res.status(404).send('This password is not incorrect!').end();
                }
            }
        }
    });
});
router.get('/login',(req,res)=>{
    res.render('admin/login.ejs',{layout:'/admin/layout.ejs',title:'Login'});
});
router.get('/',(req,res)=>{
    res.render('admin/index.ejs',{layout:'/admin/layout.ejs',title:'Index',username:username});
});

比如在后登录路由器中,我得到的用户名是" ollie",当db操作结束时,路由器重定向" /",我可以得到用户名" ollie& #34;在" /"路由器。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用会话。例如。在配置快速应用程序的地方,请使用:

if (data[0].password == password) {
    req.session['admin_id']=data[0].ID;
    req.session.username = data.username;
    res.redirect('/');
}

然后你可以访问它,例如

router.get('/route', (req, res) => {
    console.log(req.session && req.session.username);
    res.end(`Hi ${req.session && req.session.username}`)
});

请拜托,请不要在任何认证方案中使用md5,即使是示例代码。