您可以创建如下所示的模块,该模块将检查您所需的数据库的数据库连接是否已存在.如果是,它将返回连接对象,否则它将创建一个并返回它.
var mongoose = require('mongoose');
//Object holding all your connection strings
var connections = {};
exports.getDatabaseConnection = function(dbName) {
if(connections[dbName]) {
//database connection already exist. Return connection object
return connections[dbName];
} else {
connections[dbName] = mongoose.createConnection('mongodb://localhost:27017/' + dbName);
return connections[dbName];
}
}
假设您将上面的文件命名为data.js.您只需要在包含API代码的文件中要求使用此模块.您的API代码将更改为:
app.get('/api/student-limited/:_pageNumber/:_pageSize', function(req, res) {
//Call getDatabaseConnection function we created
var db = data.getDatabaseConnection(req.headers['x-key-db']);
var ClassSection = db.model('ClassSections', SectionSchema);
var Student = db.model('Students', StudentSchema);
var _pageNumber = parseInt(req.params._pageNumber), _pageSize = parseInt(req.params._pageSize);
Student.find({}, function (err, _docs) {
if(_docs){
Student.find({}, null, {sort: { Name: 1} }).skip(_pageNumber > 0 ? ((_pageNumber-1)*_pageSize) : 0).limit(_pageSize).populate('_idClass').exec(function (err, docs) {
if(err)
res.json(err);
else
res.json({ "TotalCount" : _docs.length, "_Array" : docs});
});
}
});
});