express:保持所有DRY创build一个mongoose连接模块(使用新的createConnection方法)
这是我的实际数据库连接模块:
var mongoose = require('mongoose'), conn = mongoose.createConnection('localhost', 'doto'); conn.on('error', function (err) { console.log('Error! DB Connection failed.'); }); conn.once('open', function () { console.log('DB Connection open!'); }); module.exports = conn;
有一个地方我用它
exports.list = function (req, res) { var conn = require('../lib/db_connection'); conn.once('open', function () { // if i dont wrap with this, the page will not be rendered... conn.db.collectionNames(function (err, names) { res.render('list_collections', { title: 'Collections list', collections_names: names }); }); }); }
我的问题是:我真的需要每次使用conn.once? 任何build议?
您应该在您的函数之外移动require
,以便在应用程序加载时打开连接,而不是等到第一个请求。
var conn = require('../lib/db_connection'); exports.list = function (req, res) { conn.db.collectionNames(function (err, names) { res.render('list_collections', { title: 'Collections list', collections_names: names }); }); }