Was ist der richtige Weg, um Mungo-Verbindungen mit express.js zu behandeln?

Ich habe ein sehr einfaches "server.js" -Setup, das ich ausführen möchte:

var express = require('express'),
    wines = require('./routes/testscripts');

var app = express();

app.get('/first_test', wines.popSingleData);

app.listen(3000);
console.log('Listening on port 3000...');

Dies ist eingerichtet, um eine Verbindung herzustellenlocalhost:3000

Wenn ich zu navigierelocalhost:3000/first_testRuft die "popSingleData" -Methode in testscript.js auf:

...
    var mongoose = require('mongoose');

    mongoose.connect('mongodb://localhost/test');

    var db = mongoose.connection;

    console.log('include called');

exports.popSingleData = function(req, res) {

//  var mongoose = require('mongoose');

//  mongoose.connect('mongodb://localhost/test');

//  var db = mongoose.connection;

    console.log('function called');

    db.on('error', console.error.bind(console, 'connection error:'));
    console.log('error handler set');
    db.once('open', function callback () {
        //yay!
        console.log("DB Opened");

        var someSchema = require('../models/someSchema');

        someSchema.find(function (err, found){
            if (err) 
            {
                console.log('err');
            }

            if(found.length != 0) 
            {
                console.log("Found Data:");
                console.log(found);
                for( var i = 0; i < found.length; i++)
                {
                    res.jsonp((found[i]));
                }
            }
        });


    });

};
...

Die Zeilen, die das Problem verursachen, sind die ersten 3:

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;

Wenn sie in der Funktion deklariert werden, wird das Skript wie erwartet ausgeführt und druckt die JSON-Objekte aus, die es aus der Datenbank gefunden hat. Wenn sie in testscript.js definiert sind, aberaußerhalb des Anwendungsbereichs der Methodehängt das programm an derdb.once('open', function callback () {...}); command.

Könnte jemand etwas Licht in den Unterschied bringen, der durch das Verschieben dieser drei Codezeilen entsteht? Muss ich wirklich jedes Mal eine neue Verbindung herstellen, wenn eine andere Funktion auf die Datenbank zugreifen soll?