fork from bc4552c5a8
This commit is contained in:
49
server/models/base.js
Normal file
49
server/models/base.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const yapi = require('../yapi.js');
|
||||
const mongoose = require('mongoose');
|
||||
const autoIncrement = require('../utils/mongoose-auto-increment');
|
||||
|
||||
/**
|
||||
* 所有的model都需要继承baseModel, 且需要 getSchema和getName方法,不然会报错
|
||||
*/
|
||||
|
||||
class baseModel {
|
||||
constructor() {
|
||||
this.schema = new mongoose.Schema(this.getSchema());
|
||||
this.name = this.getName();
|
||||
|
||||
if (this.isNeedAutoIncrement() === true) {
|
||||
this.schema.plugin(autoIncrement.plugin, {
|
||||
model: this.name,
|
||||
field: this.getPrimaryKey(),
|
||||
startAt: 11,
|
||||
incrementBy: yapi.commons.rand(1, 10)
|
||||
});
|
||||
}
|
||||
|
||||
this.model = yapi.db(this.name, this.schema);
|
||||
}
|
||||
|
||||
isNeedAutoIncrement() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 可通过覆盖此方法生成其他自增字段
|
||||
*/
|
||||
getPrimaryKey() {
|
||||
return '_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取collection的schema结构
|
||||
*/
|
||||
getSchema() {
|
||||
yapi.commons.log('Model Class need getSchema function', 'error');
|
||||
}
|
||||
|
||||
getName() {
|
||||
yapi.commons.log('Model Class need name', 'error');
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = baseModel;
|
||||
Reference in New Issue
Block a user