首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Nestjs加密密码预存@nestjs/mongoose

Nestjs加密密码预存@nestjs/mongoose
EN

Stack Overflow用户
提问于 2022-07-07 16:02:36
回答 1查看 76关注 0票数 0

尝试在使用@nestjs/mongoose保存之前加密密码。阅读一些示例,它们类似于下面的伪代码:

代码语言:javascript
运行
复制
UsersSchema.pre('save', (next: any) => {
  if (!this.isModified('password')) return next();
  this.password = encrypt(this.password, 10);
  next();
});

这是没有类型的,所以我console.log获取信息,它似乎是一个完全不同的对象。

代码语言:javascript
运行
复制
// user.entity.ts
const UsersSchema = SchemaFactory.createForClass(Users);

UsersSchema.pre('save', () => {
  console.log(this);
});

export { UsersSchema };

日志结果:

代码语言:javascript
运行
复制
 {
   Users: [class Users],
   UsersSchema: Schema {
     obj: {
       username: [Object],
       name: [Object],
       email: [Object],
       password: [Object]
     },
     paths: {
       username: [SchemaString],
       name: [SchemaString],
       email: [SchemaString],
       password: [SchemaString],
       _id: [ObjectId],
       __v: [SchemaNumber]
     },
     aliases: {},
     subpaths: {},
     ...and more

不知道这是怎么回事,我在医生那里也找不到这个。也许我做错了?

EN

回答 1

Stack Overflow用户

发布于 2022-07-21 13:27:49

尝试使用常规函数而不是箭头函数,这应该可以修复它!

代码语言:javascript
运行
复制
UsersSchema.pre('save', function (next: any)  {
  if (!this.isModified('password')) return next();
  this.password = encrypt(this.password, 10);
  next();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72900982

复制
相关文章

相似问题

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