【发布时间】:2018-06-30 14:28:41
【问题描述】:
大家好,我尝试使用 Express.js 实现非常简单的身份验证。对为什么无法从其他路由读取会话感到困惑。这是我的代码:
router.post('/', function(req, res){
var username = req.body.username;
var password = req.body.password;
var sess = req.session;
var sql = "SELECT * FROM user WHERE username='" +username+ "' && password='" +password+"'";
connection.query(sql, function(err, rows, field){
if(err) throw err;
if(rows[0]){
console.log('Username: ', rows[0].username);
var sessionObj = {
username: username,
role: rows[0].role,
fullname: rows[0].nama_lengkap,
email: rows[0].email
};
sess.obj = sessionObj;
res.render("../views/login/home", {person: sess.obj});
}
else{
console.log('no data found');
}
});
我想从获取路线中调用它,但它不起作用。
【问题讨论】:
-
您可以在服务器上使用会话,但如果您想在视图中访问会话值,那么您可以通过不同的方式传递会话值,就像我们无法直接访问会话值一样,所以像
let person = req.locals.person = sess.obj; res.render('home",{person:person});一样传递它并在视图侧访问它 -
哦,我明白了@SantoshSuryawanshi,谢谢
标签: node.js express session authentication