1

これが私の実際のdb接続モジュールです:

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 を使用する必要があるかどうかです。なにか提案を?

4

1 に答える 1

1

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
    });
  });
}
于 2012-11-03T14:55:31.233 に答える