我在nodejs中是菜鸟,我试图在express-nodejs和handlebar中整合2种类型的登录和注册,一种针对用户,另一种针对购物者,但是我无法根据会话更改我的nav菜单。
因为默认会话存储在req.user中,所以我需要另一个变量来存储我的店主会话详细信息。因为我试图像这样在序列化和反序列化中更改细节,所以
passport.serializeShopper(function (shopper, done) {
done(null, shopper.id);
});
passport.deserializeShopper(function (id, done) {
Shopper.getShopperById(id, function (err, shopper) {
done(err, shopper);
})
});
,然后在app.js文件的全局变量部分中更改这些详细信息
// Global Vars
app.use(function (req, res, next) {
res.locals.success_msg = req.flash('success_msg');
res.locals.error_msg = req.flash('error_msg');
res.locals.error = req.flash('error');
res.locals.user = req.user || null;
res.locals.shopper= req.shopper || null;
next();
});
但是当我尝试console.log(req.shopper);我没有任何价值。如何根据我的用户类型进行不同的会话。另外,由于现在我正尝试使用此代码,因此如何将其包括在车把模板前端中
<ul class="nav navbar-nav navbar-right">
<li ><a href="#about" style="color:white;">ABOUT</a></li>
<li ><a href="#download" style="color:white">DOWNLOAD</a></li>
<li ><a href="#contact" style="color:white">CONTACT</a></li>
{{#if user || shopper }}
<li data-toggle="modal" data-target="#login">
<ahref="/users/logout"><span class="glyphicon glyphicon-log-in"
style="color:white"></span> LOGOUT</a></li>
{{else}}
<li data-toggle="modal" data-target="#signup"><a
href="/users/register" style="color:white"><span class="glyphicon glyphicon-
user" style="color:white"></span>USER SIGN UP</a></li>
<li data-toggle="modal" data-target="#signup"><a
href="/shopper/register" style="color:white"><span class="glyphicon
glyphicon-user" style="color:white"></span>SHOPPER SIGN UP</a></li>
<li data-toggle="modal" data-target="#login" ><a
href="/users/login" style="color:white"><span class="glyphicon glyphicon-
log-in" style="color:white"></span> USER LOGIN</a></li>
<li data-toggle="modal" data-target="#login"><a
href="/shopper/login" style="color:white"><span class="glyphicon
glyphicon-log-in" style="color:white"></span> SHOPPER LOGIN</a></li>
{{/if}}
</ul>
如果有人可以帮助我,这将很有帮助,我在手把方面的知识也不多,因此我可能在那里也缺少一些东西。 预先感谢。