微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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”吗?它在许多方面会更有效率.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐