首先,在了解从服务器建立数据库连接的性能成本方面,我还很陌生,所以如果我说了一些我可能不是故意的话,请原谅。
我目前正在为 node.js 学习一个 mongodb 类,我真的很着迷于他们最初提供的博客服务器的代码是多么简单和优雅(我们主要只是实现对数据库的查询)。它看起来像这样:
var express = require('express')
, app = express()
, cons = require('consolidate')
, MongoClient = require('mongodb').MongoClient
, routes = require('./routes');
MongoClient.connect('mongodb://localhost:27017/blog', function(err, db) {
if(err) throw err;
app.set('views', __dirname + '/views');
app.use(express.cookieParser());
app.use(express.bodyParser());
routes(app, db);
app.listen(3000);
console.log('Express server listening on port 3000'); });
如您所见,它会在服务器配置为执行任何操作之前建立数据库连接。可以将此模式用于生产吗?它看起来很模块化,因为 db 被传递给 index.js,在那里它处理所有路由。
我之前所做的是在每个查询数据库的请求时建立连接并关闭它(使用 pg 模块)。我实际上也不确定这是否是个好主意。但我想确认一下我上面描述的这种模式是可以的;如果不是,也许提供替代方案并解释原因(mongodb 的替代结构/模式和/或 pg不是像猫鼬这样的替代模块)。
谢谢!