这是这是一个有点不清楚,我(我刚开始使用节点和蒙戈),它真的对我而言,由于服务器的性能和应变(我的猜测是另一个问题,但我会在到达那个在帖子的末尾)。
因此,假设我写使用的是Node.js和的RESTify,其中每个API端点对应一个功能的API,我应该:
a)打开数据库连接,并将其存储在一个全局变量,然后只使用在每一个功能?
例:
// requires and so on leave me with a db var, assume {auto_reconnect: true}
function openDB() {
db.open(function(err, db) {
// skip err handling and so on
return db;
}
}
var myOpenDB = openDB(); // use myOpenDB in every other function I have
B)打开数据库连接,然后就把一切都放在一个巨大的关闭?
例:
// same as above
db.open(function(err, db) {
// do everything else here, for example:
server.get('/api/dosomething', function doSomething(req, res, next) { // (server is an instance of a Restify server)
// use the db object here and so on
});
}
三)开放,每次需要的时候关闭分贝?
例:
// again, same as above
server.get('/api/something', function doSomething(req, res, next) {
db.open(function(err, db) {
// do something
db.close();
});
});
server.post('/api/somethingelse', function doSomethingElse(req, res, next) {
db.open(function(err, db) {
// do something else
db.close();
});
});
这最后一个是我会做出来的直觉,但在同一时间,我觉得不完全满意这样做。 难道不是把太多应变蒙戈服务器上? 特别是当(我希望我能去成是)它得到数百 - 如果不是数千 - 像这样的电话?
先感谢您。