Mongoose Document Model.events函数
Model.events 属性是Mongoose API用于返回模型的事件实例。事件的实例包含诸如_events、_eventsCount和_maxListeners等字段。
语法:
Model_Name.events
返回值: Model.events属性返回模型的事件实例。
设置Node.js应用程序:
步骤1: 使用以下命令创建一个Node.js应用程序:
npm init
步骤2: 创建NodeJS应用程序后,使用以下命令安装所需的模块:
npm install mongoose
项目结构: 项目的结构将如下所示:
示例1: 在这个示例中,我们使用mongoose建立了数据库连接,并定义了userSchema上的模型,它有两个列或字段:“name”和“age”。最后,我们正在使用User模型上的events属性,该属性将返回模型的事件实例。
- app.js: 在app.js文件中写入以下代码:
// Require mongoose module
const mongoose = require('mongoose');
// Set Up the Database connection
mongoose.connect(
'mongodb://localhost:27017/geeksforgeeks', {
useNewUrlParser: true,
useUnifiedTopology: true
})
const userSchema = new mongoose.Schema(
{ name: String, age: Number }
)
// Defining userSchema model
const User = mongoose.model('User', userSchema);
// Getting events property
const output = User.events
console.log("Events instance is:",output)
运行程序的步骤: 从项目的根目录中执行以下命令来运行应用程序:
node app.js
输出:
Events instance is: EventEmitter {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
[Symbol(kCapture)]: false
}
示例2: 在这个示例中,我们使用mongoose建立了一个数据库连接,并在studentSchema上定义了一个模型,其中包含三个列或字段“name”,“father_name”和“mother_name”。最后,我们在Student模型上使用events属性,该属性将返回一个带有事件的模型实例。
- app.js: 在app.js文件中写下如下代码:
// Require mongoose module
const mongoose = require('mongoose');
// Set Up the Database connection
mongoose.connect(
'mongodb://localhost:27017/geeksforgeeks', {
useNewUrlParser: true,
useUnifiedTopology: true
})
const studentSchema = new mongoose.Schema(
{ name: String, father_name:
String, mother_name: String }
)
// Defining studentSchema model
const Student = mongoose.model('Student', studentSchema);
// Setting the events property
Student.events.on('error', err => console.log(err.message));
// Accessing base property on Student model
const output = Student.events
console.log("Events Instance is:", output)
运行程序的步骤: 在项目的根目录下执行以下命令来运行应用程序:
node app.js
输出:
Events Instance is: EventEmitter {
_events: [Object: null prototype] { error: [Function (anonymous)] },
_eventsCount: 1,
_maxListeners: undefined,
[Symbol(kCapture)]: false
}
参考: https://mongoosejs.com/docs/api/model.html#model_Model-events