我尝试在网上搜索,没有找到重复使用mongodb.connection对象的明显代码示例。这就是我目前所拥有的,如果没有问题请任何人验证。
var app = express();
var mongodb = require('mongodb').MongoClient, format = require('util').format;
var db = null;
app.get('/api/v1/put/:var1/:var2', function(req, res){
collection = db.collection('collection');
/** .. logic ... **/
});
mongodb.connect('mongodb://127.0.0.1:27017/mydb', function(err, mdb){
db = mdb;
app.listen(8000);
});
答案 0 :(得分:1)
您的方法会遇到问题,一旦应用程序运行,它将注册快速路由。如果您的Web服务器存在空闲连接,则会尽快处理它们,这将导致db is undefined
。
为了防止这种情况,我建议仅在连接数据库后才注册快速路由 同样,您可以缓存集合,而不是在每个请求上获取它们。
答案 1 :(得分:1)
这只是重构我的问题代码以反映Maksims的建议
var app = express();
var mongodb = require('mongodb').MongoClient, format = require('util').format;
mongodb.connect('mongodb://127.0.0.1:27017/mydb', function(err, db){
collection = db.collection('collection');
app.get('/api/v1/put/:var1/:var2', function(req, res){
/** .. logic ... **/
});
app.listen(8000);
});