我正在使用以下项目学习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"不出口?
我错过了什么?
答案 0 :(得分:0)
正如您在此文件index.js中的最后一行
所见 var mongoose = module.exports = exports = new Mongoose;
这意味着,Mongoosee只会将一个实例(单例)导出到处理程序数据库操作中。因为您首先在server.js
文件中创建连接,之后,任何包含/要求的模型都将与您的数据库服务器建立连接。所有应用都适用于单个对象。