Node.js javascript原型对象中的mongoose模型继承

Node.js javascript原型对象中的mongoose模型继承,node.js,mongodb,express,mongoose,prototypal-inheritance,Node.js,Mongodb,Express,Mongoose,Prototypal Inheritance,假设您的主服务器中需要这样的路由初始化: module.exports = function(app) { for (var name in names) { var schema = new Schema({}) // schema that accepts anything , m = mongoose.model(name, schema) , controller = new TextController(m) app.get('/path'

假设您的主服务器中需要这样的路由初始化:

module.exports = function(app) {
  for (var name in names) {
    var schema = new Schema({})  // schema that accepts anything
      , m = mongoose.model(name, schema)
      , controller = new TextController(m)
    app.get('/path', controller.create.bind(controller))
    // etc, etc
而TextController在外部定义为:

var TextController = function(Model) {
  this.Model = Model
}
TextController.prototype.create = function(req, res) {
  var aDoc = this.Model({   // this is the problematic bit
      title: req.body.title
    , content: req.body.content})
  aDoc.save(function(err) {...})
}
出于某种原因,mongo将其保存为空文档,即使标题和内容参数是预期的字符串。正如所料,这个.Model是某种mongoose对象,但它似乎拒绝保存或实例化。有什么想法或建议吗

注意:我添加了controller.method.bind(controller),因为这是(我知道的)访问这个.Model的唯一方法

编辑:我还尝试了以下方法:

var TextController = function(myCollection) {
  this.myCollection = myCollection
  this.list = function(req, res) {
    this.myCollection.find({}, function { ... })
  }
}

还尝试在函数范围内传入名称并初始化模型
函数(name){this.myCollection=mongoose.model(name)…}

这与javascript原型无关,完全是因为mongoose如何实现混合类型模式:

要告诉mongoose文档已更改,您需要
markModified(字段)

这里的例子:

除了这个问题之外,我一直无法得到任何关于这个问题的答案。有人有想法吗?