我怎样才能传递参数“用户名”到“/”路由器与快递?
我有一个数据库操作在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,甚至是实例代码。