Я использую PassportJS и Express:
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
app.use(function(req, res, next){
res.locals.CurrentUser = req.user;
next();
});
app.get('/pics/:id', middleware.isLoggedIn, function(req, res) {
User.find({"_id": req.params.id}, function(err, userProfile) {
if(err) {
console.log("error on profile page: " + err)
} else {
res.render("user-profile", {userProfile: userProfile});
}
})
})
Вот мой сокращенный код сервера. Теперь на стороне клиента я пытаюсь использовать свой код res.locals и обнаруживаю, что атрибут имени пользователя остается постоянным, но не идентификатором.
<%=CurrentUser.username%>
<%=CurrentUser._id%>
Приведенный выше код выдает:
Шон 5aea9a9d66c1a878787594f1
когда я запрашиваю http://localhost:3000/pics/5aeaafe552984a856080644b
И это производит:
Шон 5aeaafe552984a856080644b
когда я запрашиваю http://localhost:3000/pics/5aeaafe552984a856080644b
Как я могу сохранить атрибут ._id константы CurrentUser как имя?