当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Mongoose SchemaType.prototype.required()用法及代码示例


Mongoose API 的 Mongoose SchemaType.prototype.required() 方法用于 SchemaType 对象。它允许我们在模式字段上设置验证器。使用此方法,我们可以为 SchemaType 字段设置验证器。让我们通过一个例子来理解required()方法。

用法:

schemaTypeObject.required( <boolean/function/object> );

Parameters: 该方法接受两个参数,如下所述:

  • required: 它用于启用或禁用字段所需的属性。
  • message: 它用于指定错误消息。

返回值:此方法返回SchemaType对象。

设置 Node.js Mongoose 模块:

步骤 1:使用以下命令创建 Node.js 应用程序:

npm init

步骤 2:创建 NodeJS 应用程序后,使用以下命令安装所需的模块:

npm install mongoose

项目结构: 项目结构将如下所示:

示例 1:下面的示例说明了 Mongoose SchemaType 的函数required()方法。在此示例中,我们定义了具有三个属性或字段 name、age 和 rollNumber 的 StudentSchema。在最后,名字创建 StudentModel 对象时,字段是必需的并且必须具有某些值。这就是为什么我们收到验证错误,因为我们没有提供值名字创建 StudentModel 对象时的字段。

文件名:app.js

Javascript


// Require mongoose module 
const mongoose = require("mongoose"); 
  
// Set Up the Database connection 
const URI = "mongodb://localhost:27017/geeksforgeeks"
  
const connectionObject = mongoose.createConnection(URI, { 
    useNewUrlParser: true, 
    useUnifiedTopology: true, 
}); 
  
const studentSchema = new mongoose.Schema({ 
    name: { type: String, required: true }, 
    age: Number, 
    rollNumber: { type: Number } 
}); 
  
const StudentModel =  
    connectionObject.model('Student', studentSchema); 
  
const doc = new StudentModel({ age: 20, rollNumber: 101 }); 
  
doc.save((result => { 
    console.log(result) 
}))

运行程序的步骤:要运行应用程序,请从项目的根目录执行以下命令:

node app.js

输出:

Error: Student validation failed: name: Path `name` is required.

示例 2:下面的示例说明了 Mongoose SchemaType required() 方法的函数。在此示例中,我们定义了具有三个属性或字段 name、age 和 rollNumber 的 StudentSchema。最后,在创建 StudentModel 对象时,name 字段和 rollNumber 字段是必需的并且强制具有某些值。

文件名:app.js

Javascript


// Require mongoose module 
const mongoose = require("mongoose"); 
  
// Set Up the Database connection 
const URI = "mongodb://localhost:27017/geeksforgeeks"
  
const connectionObject = mongoose.createConnection(URI, { 
    useNewUrlParser: true, 
    useUnifiedTopology: true, 
}); 
  
const studentSchema = new mongoose.Schema({ 
    name: { type: String, required: true }, 
    age: Number, 
    rollNumber: { 
        type: Number, required: (() => { 
            return this.age >= 18 
        }) 
    } 
}); 
  
const StudentModel =  
    connectionObject.model('Student', studentSchema); 
  
const document = new StudentModel({ name: 'Student 1', 
    age: 22, rollNumber: 101 }); 
document.save().then(document => { 
    console.log(document); 
})

运行程序的步骤:要运行应用程序,请从项目的根目录执行以下命令:

node app.js

输出:

{
    name: 'Student 1',
      age: 22,
      rollNumber: 101,
      _id: new ObjectId("63a3630fc9bec4d7e98de925"),
      __v: 0
}

示例 3:下面的示例说明了 Mongoose SchemaType required() 方法的函数。在此示例中,我们定义了具有三个属性或字段 name、age 和 rollNumber 的 StudentSchema。最后,name 字段始终是必需的,但 rollNumber 字段是必需的,并且在创建 StudentModel 对象时必须有条件地具有某些值。

文件名:app.js

Javascript


// Require mongoose module 
const mongoose = require("mongoose"); 
  
// Set Up the Database connection 
const URI = "mongodb://localhost:27017/geeksforgeeks"
  
const connectionObject = mongoose.createConnection(URI, { 
    useNewUrlParser: true, 
    useUnifiedTopology: true, 
}); 
  
const studentSchema = new mongoose.Schema({ 
    name: { type: String, required: true }, 
    age: Number, 
    rollNumber: { 
        type: Number, required: (() => { 
            return this.age >= 18 
        }) 
    } 
}); 
  
const StudentModel =  
    connectionObject.model('Student', studentSchema); 
  
const document2 =  
    new StudentModel({ name: 'Student 2', age: 16 }); 
      
document2.save().then(document2 => { 
    console.log(document2); 
})

运行程序的步骤:要运行应用程序,请从项目的根目录执行以下命令:

node app.js

输出:

{
    name: 'Student 2',
      age: 16,
     _id: new ObjectId("63a36373c69cbe92435273c0"),
      __v: 0
}

参考:https://mongoosejs.com/docs/api/schematype.html#schematype_SchemaType-required



相关用法


注:本文由纯净天空筛选整理自sakshio0hoj大神的英文原创作品 Mongoose SchemaType.prototype.required() API。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。