nodejs MODEL层 封装(二)

作者:短工邦技术部 - 陈文哲

经过《nodejs MODEL层 封装(一)》的封装,MODEL层变得简洁了,但是所有MODEL层的方法都一样,所以显而易见的,下一步封装就是把所有相同的代码封装到BaseMODEL,然后自定义的MODEL“继承”自BaseMODEL就行了。

在MODEL目录下,新建BaseMODEL.js,代码如下

exports.statics = {
    //KeyValue是一个JSON对象,可以根据需求自由传入
    findByKeyValue : function( KeyValue, data ) {
        return this.find(KeyValue).exec( data );
    },
    Find : function( query, data ) {
        if(!query.limit){
            query.limit = 1000;
        }
        if(!query.order){
            query.order = "-createdAt";
        }
        if(!query.include){
            query.include = "";
        }
        return this.find(query.where).populate(query.include).limit(query.limit).sort(query.order).exec( data );
    },
    Update : function( query,data){
        query.data.updatedAt = Date.now();  //所有更新操作,都更新系统updatedAt字段
        return this.update({_id:query._id},query.data).exec(data);
    }
};

然后MODEL层代码就可以改装了

var Schema = require('mongoose').Schema;

var MODEL = Schema({
    Advertiser: {type:Schema.Types.ObjectId,ref:'UserMODEL'},
    Name: String,  //任务名称
    Intro: String,
    createdAt:{
        type:Date,
        default:Date.now()
    },
    updatedAt:{
        type:Date,
        default:Date.now()
    }
}, {collection: "Plan"});

var BaseMODEL = require("./BaseMODEL");
MODEL.statics = BaseMODEL.statics;

/* global db */
module.exports = db.model('PlanMODEL', MODEL);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值