首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据库中的数据正在更新,但在前端未显示

数据库中的数据正在更新,但在前端未显示
EN

Stack Overflow用户
提问于 2021-05-07 14:26:46
回答 1查看 57关注 0票数 0

我正在更新我的用户详细信息,并且详细信息正在更新,但是当我刷新我的页面时,显示的是旧的详细信息,但集合中的数据是更新的。当我从应用程序注销并再次登录时,仅显示更新信息,但不会在刷新组件时显示

代码语言:javascript
运行
复制
export class UserProfileComponent implements OnInit {
  email: string = "";
  firstName: string = "";
  lastName: string = "";
  company: string = "";

  updateUser(): void {
    const userDetails = {
      firstName: this.firstName,
      lastName: this.lastName,
      company: this.company,
      email: this.email,
    };
    this.userService.updateUser(userDetails).subscribe(
      (response) => {
        this.firstName = response.user.name.first;
        this.lastName = response.user.name.last;
        this.company = response.user.company;
        console.log([this.firstName, this.lastName, this.company]);
      },
      (err) => {
        console.log(err);
      }
    );
  }
}

用于显示的html组件

代码语言:javascript
运行
复制
<div class="info-details-form">
        <div class="info-form-control">
          <input
            type="text"
            [(ngModel)]="firstName"
            placeholder="First Name"
            name="firstName"
          />
        </div>
        <div class="info-form-control">
          <input
            type="text"
            [(ngModel)]="lastName"
            placeholder="Last Name"
            name="lastName"
          />
        </div>
        <div class="info-form-control">
          <input
            type="text"
            [(ngModel)]="company"
            placeholder="company"
            name="company"
          />
        </div>
        <div class="info-form-control">
          <input
            type="text"
            value="{{ email }}"
            placeholder="Email"
            readonly
            name="email"
          />
        </div>
        <div class="info-btn-control">
          <button class="cancel-btn">Cancel</button>
          <button class="main-btn" (click)="updateUser()">Save</button>
        </div>
      </div>
    </div>
  </div>

后台更新用户的函数

代码语言:javascript
运行
复制
 public static async updateUser(req, res, next) {
    try {
      const { firstName, lastName, email, company } = req.body.userDetails;
      const user = await User.findOne({ email: email });
      user.name.first = firstName;
      user.name.last = lastName;
      user.company = company;
      await user.save();
      res.json({
        token: jwt.encode(getJwtPayload(user), UserRoutes.JWT_SECRET),
        user,
      });
    } catch (error) {
      next(error);
    }
  }
EN

回答 1

Stack Overflow用户

发布于 2021-05-07 14:30:25

backend上更新文档时,请确保包含{new: true}。如果不包含,文档将会更新,但会返回原始文档。您可以像这样添加:

代码语言:javascript
运行
复制
db.collection.update({
  // Filter Query
},
{
  // Update
},
{
  "new": true
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67429950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档