Node.js 为什么User.follow仅在两个视图中可用?

Node.js 为什么User.follow仅在两个视图中可用?,node.js,express,passport.js,Node.js,Express,Passport.js,我正在使用Passport对我的用户进行身份验证,并将他们的信息传递到每个视图,以及存储在用户数据库中的信息。我正在尝试传递与登录用户相关的友谊信息。问题是,这只适用于我的两种观点: 单用户页面 这是我的路线代码 router.get('/', function(req, res) { res.render('index'); }); router.get('/login', userController.getLogin); router.post('/login', userCon

我正在使用Passport对我的用户进行身份验证,并将他们的信息传递到每个视图,以及存储在用户数据库中的信息。我正在尝试传递与登录用户相关的友谊信息。问题是,这只适用于我的两种观点:

单用户页面

这是我的路线代码

router.get('/', function(req, res) {
    res.render('index');
});

router.get('/login', userController.getLogin);
router.post('/login', userController.postLogin);
router.get('/logout', userController.logout);
router.get('/signup', userController.getSignup);
router.post('/signup', userController.postSignup);
router.get('/profile', passportConf.isAuthenticated, userController.getAccount);
router.post('/profile', passportConf.isAuthenticated, userController.postUpdateProfile);
//Test Usuarios
router.get('/users', friendController.getListUsers);
router.get('/users/:id',friendController.getShowUser);
// Test Follow
router.post('/follow/:id', passportConf.isAuthenticated,friendController.postFollowUser);

在passport deserializeUser中,您应该在FF.find的回调中,在设置user.follow=follow的位置之后立即调用doneerr,user,否则它还没有机会设置。再次感谢您的回答和编辑。
<%if (user) {%>
<h1>Hola <%= user.profile.fullname %> </h1>
<%}%>
<br>

<% users.forEach(function (user) {%>
<a href="/users/<%= user._id %>"><p><%= user.profile.fullname %></p></a>
<%});%>
<%= user.follow %>// just for testing
<a href="/">Home</a>
<%if (!user) {%>
<a href="/signup">sign up</a>
<br>
<a href="/login">login</a>
<%} else { %>
<h1>Hola <%= user.profile.fullname %> Eres lo Maximo</h1>

<a href="/profile">perfil</a>
<br>
<a href="/logout">Logout</a>
<br>
<%}%>
<br>
 <a href="/users">Lista de Usuarios</a>
 <%= user.follow %>// just for testing
 //in this view i got undefined
passport.deserializeUser(function(id, done) {
    User.findById(id, function(err, user) {
        FF.find({ follower:id }, function(err, follow) {
            user.follow = follow;
        });
        done(err, user);
    });
});
router.get('/', function(req, res) {
    res.render('index');
});

router.get('/login', userController.getLogin);
router.post('/login', userController.postLogin);
router.get('/logout', userController.logout);
router.get('/signup', userController.getSignup);
router.post('/signup', userController.postSignup);
router.get('/profile', passportConf.isAuthenticated, userController.getAccount);
router.post('/profile', passportConf.isAuthenticated, userController.postUpdateProfile);
//Test Usuarios
router.get('/users', friendController.getListUsers);
router.get('/users/:id',friendController.getShowUser);
// Test Follow
router.post('/follow/:id', passportConf.isAuthenticated,friendController.postFollowUser);