我怎样才能传递参数“用户名”到“/”路由器与快递?

我有一个数据库操作在login后路由器,当数据库操作callback成功,我有一个用户名值,以及如何可以传递这个用户名到“/”路由器?

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}); }); 

比如在login路由器后,我得到的用户名是“ollie”,当db操作结束时,路由器redirect“/”,我可以在“/”路由器中得到用户名“ollie”。

最简单的方法是使用会话。 例如,在你configuration快速应用程序的地方,使用这个:

 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}`) }); 

请不要在任何authenticationscheme中使用md5,甚至是实例代码。