javascript - 使用 Mongoose 中间件改变请求正文

标签 javascript mongoose

我想知道在最终更新并将文档保存在 Mongoose 中之前如何改变或更改最终用户的请求正文?就像 Mongoose 中间件的“保存”事件

schema.pre('save', async function () {
  const salt = await bcrypt.genSalt();
  this.password = await bcrypt.hash(this.password, salt);
});

我就是想要这样,就这样

schema.pre('updateOne', async function () {
  const salt = await bcrypt.genSalt();
  this.password = await bcrypt.hash(this.password, salt);
});

最佳答案

我只是在搜索 mongoose 的文档,它并不能满足我心中的疑问,所以我探索的原因并正确解决了它,而无需再次执行

schema.pre('updateOne', async function () {
  let data = this.getUpdate();
  const salt = await bcrypt.genSalt();
  data.password = await bcrypt.hash(data.password, salt);
});

希望有帮助:)

关于javascript - 使用 Mongoose 中间件改变请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68237398/

相关文章:

node.js - Mongoose 没有生活联系

node.js - 如何解决 `TypeError: person.save is not a function` - 出了什么问题?

javascript - 加载图像后触发 JavaScript 的最快方法?

c# - 下载XML客户端,先从Session中获取数据

javascript - wheelnav.js 库菜单项中的 Unicode 实体(在引擎盖下使用 raphael.js)[SVG]

node.js - Mongoose - 无论如何要防止中间件保存 Hook 在某些条件下执行(例如,被保存为子文档)?

javascript - Node.js MongoDB .findOne 在查询字符串时返回最佳匹配

javascript - Node.js 错误 错误 : Cannot find module 'mongoose'

javascript - Ninja Forms 上的表单就绪/初始化事件 - Backbone/Marionette

javascript - 为什么我的toggle()的两个option都在执行?