c语言mongoose普通用户,利用mongoose的plugin减少额外的代码

首先来看个例子:

通常的处理办法

// format date

topic.friendly_create_at = tools.formatDate(topic.create_at, true);

topic.friendly_update_at = tools.formatDate(topic.update_at, true);

还有

user.friendly_create_at = tools.formatDate(user.create_at, true);

反正各种各样的,那么就需要写N多次的不同的实现。

那么mongoose中的plugin怎么帮助我们完成这些事呢?

首先,定义两个用于格式化时间的方法,并导出。

/**

* 给所有的 Model 扩展功能

* http://mongoosejs.com/docs/plugins.html

*/

var tools = require('../common/tools');

module.exports = function(schema) {

schema.methods.create_at_ago = function() {

return tools.formatDate(this.create_at, true);

}

schema.methods.updated_at_ago = function() {

return tools.formatDate(this.create_at, true);

};

}

然后将这个plugin引入到某个schema中。

var mongoose = require('mongoose');

var BaseModel = require("./base_model");

var Schema = mongoose.Schema;

var ObjectId = Schema.ObjectId;

var MessageSchema = new Schema({

has_read: { type: Boolean, default: false },

create_at: { type: Date, default: Date.now }

});

MessageSchema.plugin(BaseModel);

MessageSchema.index({master_id: 1, has_read: -1, create_at: -1});

mongoose.model('Message', MessageSchema);

再将使用的地方改成如下方式,就可以在业务代码中省去转换的过程。

楼•

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值