[英]OOP with MVC using Mongoose & Express.js
我正在创建一个Express.js应用程序,我想在其中使用MVC模式和Mongoose将文档映射到MongoDB数据库。 我已经为模型创建了一个文件夹,我希望从(Javascript的版本)抽象类派生出更好的代码组织。
我很困惑组织抽象类的最佳方法是什么,并设置每个模型实例应该是的默认值。 例如,一种方法是将Mongoose Schema用于抽象类,然后将Mongoose模型用于模型本身:
Feline.js:
var mongoose = require('mongoose');
var Feline = mongoose.Schema({
size: 'Number'
});
Feline.methods.getSize = function () {
return this.size;
}
module.exports = Feline;
HouseCat.js:
var mongoose = require('mongoose')
, FelineSchema = require('./Feline.js');
var HouseCatModel = mongoose.model('HouseCat', FelineSchema)
, HouseCat = new HouseCatModel({
size: 1 //Domesticated cats are small
});
module.exports = HouseCat;
这种设计存在一些问题。 首先,我认为必须有一种更好的方法来为每个模型设置特定属性,而无需在每次客户端想要创建模型类型的新实例时实例化新模型对象。 另一方面,使用这种方案,必须在每个模型文件中都需要Mongoose,并且代码是定制的,以便使用mongoose,这意味着如果我们希望将来这样做,将难以切换到另一个ODM。
有没有更好的编码方式? 是否有任何设计模式很容易在Node中实现,以便轻松更改ODM?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.