当前位置: 首页 > 知识库问答 >
问题:

mongoose模式包含整个DB对象,而不是定义的模式对象

林鸿飞
2023-03-14

我为用户使用了两种模式。一个包含密码/salt,一个不包含用于返回前端的密码/salt。当我使用使用不带密码的模式的模型时,它仍然返回密码:/

通用用户(用于发送到客户端)

module.exports = {    
    username: String,
    email: String,
    firstName: String,
    lastName: String,
    createdOn: Date,
    updatedOn: Date,
    scopes: [String]
}

验证用户(用于创建/更新/验证用户)

module.exports = {    
    username: String,
    email: String,
    password: String,
    salt: String,
    firstName: String,
    lastName: String,
    createdOn: Date,
    updatedOn: Date,
    scopes: [String]
}

创建模型

var modelInstance=mongoose。模型(“authUser”,authUserSchema,“users”)

(在不同的文件中)

var modelInstance=mongoose。模型(“用户”、用户模式、“用户”)

用module.exports=ModelInstance导出;

更新这个问题回答了我的。如何保护Mongoose/MongoDB中的密码字段,以便在填充集合时不会在查询中返回?

共有1个答案

蒋栋
2023-03-14

你没有一个明确的问题,但我想你是在问是否可以限制它。默认情况下,答案是“否”。

这里有一个插件:https://www.npmjs.com/package/mongoose-strictmodel但它真的过时了。

创建包装函数非常简单:

function safeUser(userModel) {
  return {
    username: userModel.username,
    email: userModel.email,
    firstName: userModel.firstName,
    lastName: userModel.lastName,
    createdOn: userModel.createdOn,
    updatedOn: userModel.updatedOn,
    scopes: userModel.scopes
  }
}
 类似资料:
  • 问题内容: 是否有可能建立一个JSON模式,它仍然允许但 不 若一个非常特别的属性名存在匹配吗?换句话说,我需要知道是否有可能与声明完全相反。 架构: 比赛: 比赛: 难道 不 匹配: 问题答案: 您可以通过使用关键字来实现。如果架构验证,则父架构将不验证。

  • 主要内容:实现,AbstractCustomer.java,RealCustomer.java,NullCustomer.java,CustomerFactory.java,NullPatternDemo.java在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展

  • 在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方。 实现 我们将创

  • 在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方。 实现 我们将创

  • 我正在尝试使用OAS v2定义一个API,它将返回一个有效负载以及一些元数据。 换句话说,对API的响应将是: 有效负载可以是任何内容,并且在不同的场景下会有所不同,唯一的限制是它将是有效的JSON格式。因此,现在,我想将其定义为一个JSON对象,而不定义字段级别的细节。 如何在OAS2/JSON模式中做到这一点? 提前谢谢。