Node.js 无法在connect mongo会话存储中使用现有的本机mongo db连接

Node.js 无法在connect mongo会话存储中使用现有的本机mongo db连接,node.js,mongodb,connect-mongo,Node.js,Mongodb,Connect Mongo,index.js: .. var MongoStore = require( 'connect-mongo' )( session ); var db = require( path.join( __dirname, 'db.js' ) ); .. db.connect( conStr, function( err ) { if( err ) { console.log( 'Connect to mongoDb failed!' ); pr

index.js:

..
var MongoStore = require( 'connect-mongo' )( session );
var db         = require( path.join( __dirname, 'db.js' ) );
..
db.connect( conStr, function( err ) {
    if( err ) {
        console.log( 'Connect to mongoDb failed!' );
        process.exit( 1 );
    } else {
        app.listen( port, function() {
            console.log( 'App listening on port: ' + port );
        });
    }
});
...
app.use( session ({
    name: 'bbn.sid',
    secret:'shopusersessionsecret', 
    resave: false,
    saveUninitialized: false,
    store: new MongoStore( { db: db.get() } ),
    cookie: { 
        maxAge: 180 * 60 * 1000,
    }
}));
.. 
db.js:

...
var database = null;

function connect( url, done ) {
    if( database ) return done();

    MongoClient.connect( url, function( err, db ) {
        if( err ) return done( err );
        database = db;
        done();
    });
}

function get() {
    return database;
}
...
如果我正在创建到会话存储的新连接(通过提供url) 看起来还可以,但如果我试图使用现有的mongo连接,则会出现以下错误:

E:\Proj\bbn\node_modules\connect-mongo\src\index.js:105                                                                                                           
                throw new Error('Connection strategy not found');                                                                                                 
                ^                                                                                                                                                 

Error: Connection strategy not found                                                                                                                              
    at MongoStore (E:\Proj\bbn\node_modules\connect-mongo\src\index.js:105:23)                                                                                    
    at Object.<anonymous> (E:\Proj\bbn\index.js:50:12)                                                                                                            
    at Module._compile (module.js:541:32) 
E:\Proj\bbn\node\u modules\connect mongo\src\index.js:105
抛出新错误(“未找到连接策略”);
^                                                                                                                                                 
错误:找不到连接策略
在MongoStore(E:\Proj\bbn\node\u modules\connect mongo\src\index.js:105:23)
反对。(E:\Proj\bbn\index.js:50:12)
在模块处编译(Module.js:541:32)

似乎是会话中间件正在调用,而不是mongo db连接初始化?

将所有app.use中间件放在连接回调中:

mongoclient.connect(mongourl, (error, database) => {
   if (error) return console.log(error);`

   db = database;

   app.use...
   app.use...
   app.listen...
}

来源:

将所有应用程序放在connect回调中使用中间件:

mongoclient.connect(mongourl, (error, database) => {
   if (error) return console.log(error);`

   db = database;

   app.use...
   app.use...
   app.listen...
}
资料来源: