當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。