我的服务器需要一次处理太多请求(例如:100 req / sec),它涉及db(mongodb)操作。为此,我选择 Express Server 来处理这些请求。我用快递设置服务器。在这里,我想为整个服务器只创建一个db-connection。
实现目标: 在app.js
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/testdb1');
app.use(function (req, res, next) {
req.db1 = db;
//console.log(req.db1);
next();
});
在routes.js中
router.get('/user', function (req, res) {
if (req) {
find = {};
var db1 = req.db1;
var userCollection = db1.get(collections.user);
var testCollection1 = db1.get(collections.testTable1);
var testCollection2 = db1.get(collections.testTable2);
userCollection.find(find, function (err, doc) {
console.log('1');
});
testCollection1.find(find, function (err, doc) {
console.log('2');
});
testCollection2.find(find, function (err, doc) {
console.log('3');
});
}
});
问题是:
让当前的mongodb连接(cmc)= 1; 服务器在提升时创建一个连接(cmc ++)。当我发出路由请求(/ user)时,第一次创建了另一个连接(cmc ++)。当我再次发出请求时,会再创建一个连接(cmc ++)。之后,虽然我向该路线提出了许多请求,但计数仍然相同(cmc = 4)。究竟发生了什么? 我需要在提出请求时更新更多集合。由于集合上的操作数增加了连接数。 连接数增加的原因。我想只创建一个连接。