node.js – 使用mongoose时如何实现工厂模式?

我正在使用mongoose来处理我的MongoDB文档并拥有以下模型:

module.exports = mongoose.model('Doc',mongoose.Schema({
    type: 'doc'
},collection: "doc");

module.exports = mongoose.model('Folder',mongoose.Schema({
    type: 'folder'
},collection: "doc");

module.exports = mongoose.model('Unit',mongoose.Schema({
    type: 'unit'
},collection: "doc");

在某些时候(例如,在ajax请求中)我需要创建几种类型的模型:

app.post('/doc/create/:type',function (req,res,next) {
    var type = req.params.type;
    var data = req.body;

    // how to create model based on incoming type here?
    // var model = new Factory.create(type); ???
});

我需要了解使用类似模型的最佳实践,并从工厂或其他方面创建实例.

分享您的经验.

解决方法

您可以使用以下内容从字符串中获取模型:

var mongoose = require('mongoose')
var model = mongoose.model('Unit')

PS:如果这是解决问题的方法,我想知道你设计数据库模型的方式是否合适!你不能用索引的“类型”属性创建单个模型“Doc”吗?它在许多方面会更有效率.

相关文章

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