node.js – Mongoose模式/模型中的自定义构造函数

问候全部!

我定义了一个Mongoose模式如下,并注册一个模型(InventoryItemmodel).有没有办法为模式创建自定义构造函数,这样当我从模型中实例化一个对象时,函数将被调用(例如,从数据库中加载值的对象)?

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

var InventoryItemSchema = new Schema({
    Sku : String,Quanity : Number,Description : String,Carted : [],CreatedDate  : {type : Date,default : Date.Now},ModifiedDate  : {type : Date,default : Date.Now}
});

mongoose.model('InventoryItem',InventoryItemSchema);

var item = new InventoryItem();

我可以添加一些自定义构造函数,以便在实例化时从数据库中填充项目?

解决方法

根据您要采取的方向,您可以:

1)使用钩

当模型初始化,验证,保存和删除时,钩子将自动触发.
这是“内向外”的解决方案.
您可以在这里查看文档:

> http://mongoosejs.com/docs/middleware.html

2)为你的架构写一个静态创建函数.

静态存在于您的模型对象上,可用于替换创建新模型的功能.如果您有创建步骤的额外逻辑,您可以自己编写一个静态功能.这是“外在”的解决方案:

> http://mongoosejs.com/docs/guide.html#statics

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...