| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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;
|