了解express.js中的mongoose连接

时间:2017-02-03 02:52:53

标签: node.js mongodb express

我正在使用以下项目学习express.js: https://github.com/scotch-io/easy-node-authentication/tree/linking

在server.js中我可以看到并理解以下内容使用来自database.js的url启动与数据库的连接:

var mongoose = require('mongoose');
var configDB = require('./config/database.js');
mongoose.connect(configDB.url);

/app/models/user.js包含以下内容:

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

    local            : {
        email        : String,
        password     : String,
    },
...
}
module.exports = mongoose.model('User', userSchema);

最后/config/passport.js包含:

var User = require('../app/models/user');

我可以看看passport.js是如何从user.js获取模型的,但是我无法理解user.js如何知道server.js中的连接设置作为已启动的对象" mongoose"不出口?

我错过了什么?

1 个答案:

答案 0 :(得分:0)

正如您在此文件index.js中的最后一行

所见

var mongoose = module.exports = exports = new Mongoose;

这意味着,Mongoosee只会将一个实例(单例)导出到处理程序数据库操作中。因为您首先在server.js文件中创建连接,之后,任何包含/要求的模型都将与您的数据库服务器建立连接。所有应用都适用于单个对象。