Node.js Mongo DB已更新,但已呈现旧信息

Node.js Mongo DB已更新,但已呈现旧信息,node.js,mongodb,authentication,mongoose,passport.js,Node.js,Mongodb,Authentication,Mongoose,Passport.js,我不熟悉使用meanstack,并且正在尝试实现一个用户服务。我希望用户能够编辑信息,例如他们的显示名称 使用下面的代码,我可以在Mongo数据库中看到正确地进行了更改,但是当我记录req.user时,我看到它显示了未更新的版本,因此更新没有被呈现 请帮忙 var router = require('express').Router(); router.route('/users/:user_id/changeName') // Update user's display name

我不熟悉使用meanstack,并且正在尝试实现一个用户服务。我希望用户能够编辑信息,例如他们的显示名称

使用下面的代码,我可以在Mongo数据库中看到正确地进行了更改,但是当我记录req.user时,我看到它显示了未更新的版本,因此更新没有被呈现

请帮忙

var router = require('express').Router();
router.route('/users/:user_id/changeName')
    // Update user's display name
    .post(function(req, res) {
        User.findByIdAndUpdate(req.params.user_id, { $set: { name: req.body.newName }}, function(err, user) {
            console.log(req.user);
            console.log(req.body.newName);
            res.render('profile.ejs', { user: req.user });
        });
    });

您没有包含有关如何设置
req.user
的任何信息,但是如果您点击
user
集合来填充每个请求的
req.user
,那么您将拥有下一个请求的最新用户*

如果使用回调中返回的
user
对象简单地
res.render
,您将看到更新的用户:

res.render('profile.ejs', { user: user });


*实际上,您可能不希望针对每个请求都点击
用户
集合。理想情况下,您应该有一些会话中间件,在用户会话期间缓存
user
对象。在这种情况下,您需要在mongo中更新文档后更新会话对用户的引用。

首先添加
req.user
的位置是什么?我正在使用passport.js本地策略注册用户。哎呀,应该看看这个问题的标签。我的错!