博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongoose再认识(三)
阅读量:6932 次
发布时间:2019-06-27

本文共 1245 字,大约阅读时间需要 4 分钟。

今天,说一个常见的知识点插件。对于不熟悉mongoose的人可能会问mongoose中也有插件?这个别说还真的有。

那么,在mongoose中的插件如何使用?

mongoose插件的使用

它和通常用的JavaScript的插件一样,都是为了实现代码的重用。

同中介绍的方法类似。可以在Schema的实例上添加。

首先,介绍一个api schema.add(),这个方法可以实现对Schema的扩充。

那么,可以紧接着中的代码来说,修改它的代码如下:

let UserSchema = new mongoose.Schema({  firstname: String,  lastname: String})UserSchema.add({  createAt: {    type: Date,    default: Date.now  },  updateAt: {    type: Date,    default: Date.now  }})UserSchema.pre('save', function(next) {  let now = Date.now()  this.updateAt = now;  if (!this.createAt) this.createAt = now;})

createAtupdateAt的代码提取出来,因为在开发中,很多collection都需要它们,同样也可能需要用到它的处理方法。所以,用一个插件将它们封装起来变得很有必要。可参考如下代码:

module.exports = function(schema) {  schema.add({    createAt: {      type: Date,      default: Date.now    },    updateAt: {      type: Date,      default: Date.now    }  })  schema.pre('save', function(next) {    let now = Date.now()    this.updateAt = now;    if (!this.createAt) this.createAt = now;  })}

文件名为time-plugin.js

然后,在使用它的UserSchema定义中引用它。代码如下:

let UserSchema = new mongoose.Schema({  firstname: String,  lastname: String})let timePlugin = require('../plugins/time-plugin.js)userSchema.plugin(timePlugin)

在的源码中定义了一个base_model.js文件,这个文件分别在topic.jsuser.js等文件中进行了引用。

mongoose系列文章

转载地址:http://qnwnl.baihongyu.com/

你可能感兴趣的文章
高性能Mysql主从架构的复制原理及配置详解
查看>>
【leetcode】944. Delete Columns to Make Sorted
查看>>
thinkphp 查找表并返回结果
查看>>
MySQL应用
查看>>
Android--百度地图密钥申请+环境配置(一)
查看>>
第四周学习报告
查看>>
setPreferredSize和setSize的区别及用法
查看>>
[C++再学习系列] 引用和指针
查看>>
栈的应用
查看>>
java POI Excel 单元格样式
查看>>
【原】iOS学习之UITabBar的隐藏
查看>>
android 学习随笔十二(网络:使用异步HttpClient框架)
查看>>
最短路的那些有趣的模型(不定期更新)
查看>>
mint 13 安装 phpunit
查看>>
连续性2
查看>>
<TCP/IP>记一次关于IP地址和MAC物理地址的思考
查看>>
arp
查看>>
python 爬预警没解析前的
查看>>
ubuntu查看硬件信息
查看>>
android点滴(25)之 original-package
查看>>