从 mongoose 'toJSON' 支持中删除一个属性

2024-04-17

我正在使用 mongoose 的 toJSON 支持,如下所示:

userSchema.set('toJSON', { getters: true, virtuals: true, minimize: false })

现在,在猫鼬对象的 toJSON() 方法调用返回的结果中,我想删除某些敏感字段。怎么做?

用不同的方式来解释这个问题:

某些特定字段,例如“密码”、“令牌”,我们仅在查询中需要,但在返回结果中不需要,如何隐藏它们以防止从所有类型的查询中返回?

更新:这最终是我最终得到的结果并且工作起来很有魅力:

userSchema.options.toJSON = {
    getters: true,
    virtuals: true,
    minimize: false,
    transform: function (doc, ret, options) {
      delete ret.password
      delete ret.authToken
      return ret
    }
  }

您可以自定义 toJSON 如何在您的架构上工作,如下所示:

/**
  * adjust toJSON transformation
  */ 
mySchema.options.toJSON = {
    transform: function(doc, ret, options) {
        ret.id = ret._id;
        delete ret.password;
        delete ret.token;
        delete ret._id;
        delete ret.__v;
        return ret;
    }
};

doc是要序列化的文档,ret是将转换为 JSON 的纯 JS 对象。然后你可以操纵ret随你怎么便。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 mongoose 'toJSON' 支持中删除一个属性 的相关文章

随机推荐