node.js - 如何使用express将参数 “username”传递到 "/"路由器?

标签 node.js express

我在登录后路由器中有一个数据库操作,当数据库操作回调成功时,我得到一个用户名值,如何将此用户名传递给“/”路由器?

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”,当数据库操作结束时,路由器重定向“/”,我可以在“/”路由器中得到用户名“ollie”。

最佳答案

最简单的方法是使用 session 。例如。在配置 Express 应用程序的位置,请使用以下命令:

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,甚至是示例代码。

关于node.js - 如何使用express将参数 “username”传递到 "/"路由器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47669320/

相关文章:

javascript - React defaultValue 不工作 axios 传递动态数据

node.js - Mongodb 复杂对象查询

node.js - 在 session 中更新登录用户详细信息

express - Mongoose :如何使用 ObjectId 链接模型?

node.js - User.destroy 不是一个函数

javascript - 使用 exec() 在命令行中的 Electron js 上执行命令 'ADB devices'

node.js - React 没有在简单的 React 组件中定义(通用)

javascript - Nodejs 变量无法传递给事件监听器

node.js - 在 Jade 中使用 HTML 是否被认为是不好的做法?

mysql - 将 TimeStamp 与 MySQL 一起使用,它返回服务器时间而不是本地时间