将mongoose模型包含在包含在node.js文件中的单个js中?

时间:2016-04-19 16:15:43

标签: node.js mongodb mongoose mongoose-schema node.js-connect

我正在使用mongo mongoose创建节点应用程序。我有模型单独的文件,其中创建了所有数据模块,我想将所有数据模型配置为一个js文件,我们必须包含在node.js文件中(server.js ) 这里我有user.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema; 

module.exports = function() {
    var users = new Schema({
        name     : String
      , body      : String
      , date      : Date
    });
    mongoose.model("users", users);
};

books.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema; 

module.exports = function() {
    var books = new Schema({
        title     : String

    });
    mongoose.model("books", books);
};

现在我希望将这些books.js和user.js文件包含在一个单独的js文件中 所以我创建了一个

model.js

var models = ['users.js','books.js'];

module.exports.initialize = function() {
   var l = models.length;
    for (var i = 0; i < l; i++) {
        require(models[i])();
    }

};

我在server.js文件中包含了这个model.js文件

require('./models/model.js').initialize();

当我试图运行时,我收到“无法找到model books.js和user.js”的错误

我认为错误发生在model.js所以,请你纠正我。

1 个答案:

答案 0 :(得分:1)

您可以将models.js文件更改为以下内容:

var users = require('./users');
var books = require('./books');

module.exports.initialize = function () {
    return {
        users: users(),
        books: books()
    };
}

确保您的require()正在访问正确的文件路径。