【问题标题】:Use multiple models in as single controller MEAN.IO使用多个模型作为单个控制器 MEAN.IO
【发布时间】:2015-04-29 07:19:20
【问题描述】:

在平均堆栈方面,我是新手。我生成了一个包 ModelA。我还生成了ModelB。我现在尝试在 ModelA 控制器中引用 2 个模型。例如

模型/ModelA.js

var ModelA = new Schema({  
    name: String  
});

mongoose.model('ModelA', ModelA);

模型/ModelB.js

var ModelB = new Schema({  
   name: String  
});

mongoose.model('ModelB', ModelB);

包/控制器/ModelA.js

var mongoose = require('mongoose'),
ModelA = mongoose.model('ModelA'),
ModelB = mongoose.model('ModelB'),
_ = require('lodash');

我不断收到 MissingSchemaError:尚未为模型“ModelB”注册架构。我想我的问题是如何在控制器/模型 A 中引用模型 B?

【问题讨论】:

  • 您似乎不是 require-ing Model/ModelA.jsModel/ModelB.js 文件。你在其他地方这样做吗?
  • 我在 mean.io 中没有看到 require 用于模型。我刚刚使用节点和快递。如果我只注释掉第 3 行,这个控制器就可以工作。

标签: angularjs node.js mongodb express mean.io


【解决方案1】:

您可能想要以下内容:

模型/ModelA.js

module.exports = mongoose.model('ModelA', ModelA);

然后在任何其他文件中:

var ModelA = require('./path/to/Model/ModelA.js');
ModelA.find({}); // etc.

module.exports 将在另一个文件中为 required 时返回它的值。然后,当您需要实例/对象时,您可以将 require 分配给 var 并对其进行操作。在这种情况下,ModelA 是一个 Mongoose 模型对象,可以在任何包含它的地方使用。

【讨论】:

    猜你喜欢
    • 2015-02-15
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多