gpt4 book ai didi

node.js - Mongodb 已更新,但呈现旧信息

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:40 25 4
gpt4 key购买 nike

我刚开始使用 MEAN 堆栈,并且正在尝试实现用户服务。我希望用户能够编辑其显示名称等信息。

使用以下代码,我可以在 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 集合。理想情况下,您应该有一些 session 中间件,可以在用户 session 期间缓存 user 对象。在这种情况下,您需要在更新 mongo 中的文档后更新 session 对用户的引用。

关于node.js - Mongodb 已更新,但呈现旧信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35238602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com