我得到这些错误

MongoError:服务器实例池被销毁MongoError:拓扑已被破坏

如果有人知道是什么导致这个模块出现这些错误以及如何解决它,我会很高兴 . .

MongoError:服务器实例池在Server.update(/ home / jnyheim / var /)的basicWriteValidations(/home/jnyheim/var/www/node_modules/mongodb-core/lib/topologies/server.js:698:41)中被销毁 . www / node_modules / mongodb -core / lib / topologies / server.js:834:16)在Server.update(/home/jnyheim/var/www/node_modules/mongodb/lib/topologies/topology_base.js:326:25)在/home/jnyheim/var/www/node_modules/mongodb/lib/utils.js:437的updateDocuments(/home/jnyheim/var/www/node_modules/mongodb/lib/operations/collection_ops.js:1344:19): 24在新的Promise()处于executeOperation(/home/jnyheim/var/www/node_modules/mongodb/lib/utils.js:432:10)的Collection.update(/ home / jnyheim / var / www / node_modules / mongodb / lib / collection.js:829:10)atCallback.collectionReady.then.collection(/home/jnyheim/var/www/node_modules/connect-mongo/src/index.js:244:48)at process._tickCallback( internal / process / next_tick.js:188:7)MongoError:拓扑在nextFunction被破坏了(/ home / jnyheim / var / www / node_modules / mongodb -core / lib / cursor.js:603:27)在Cursor.next(/home/jnyheim/var/www/node_modules/mongodb-core/lib/cursor.js:824:3)的Cursor._next(/ home) /jnyheim/var/www/node_modules/mongodb/lib/cursor.js:211:36)在nextObject(/home/jnyheim/var/www/node_modules/mongodb/lib/operations/cursor_ops.js:186:10)at at在executeOperation(/home/jnyheim/var/www/node_modules/mongodb/lib/utils.js:40) :24)在findOne上的Cursor.next(/home/jnyheim/var/www/node_modules/mongodb/lib/cursor.js:253:10)(/ home / jnyheim / var / www / node_modules / mongodb / lib / operations /collection_ops.js:542:10)/home/jnyheim/var/www/node_modules/mongodb/lib/utils.js:437:24在executeOperation的新Promise()中/(home / jnyheim / var / www / node_modules /mongodb/lib/utils.js:432:10)在Collection.findOne(/home/jnyheim/var/www/node_modules/mongodb/lib/collection.js:1021:10)atCallback.collectionReady.then.collection( /家庭/ jnyheim在/ var / WWW / node_modules /连接 - 蒙戈/ src / index.js:192:46)at

我发现它是由 const MongoStore = require('connect-mongo')(session); 模块在执行时引起的

store:new MongoStore({mongooseConnection:mongoose.connection})

app.use(session({
    secret: "mylittle34secret",
    cookie: { maxAge: (1 * 60 * 60 * 1000) },
    saveUninitialized: false,
    resave: false,
    proxy: true,
    store: new MongoStore({mongooseConnection: mongoose.connection}),
}));

完整代码:

'use strict'

// Dependencies
const expressValidator = require('express-validator');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const passport = require('passport');
const mongoose = require('mongoose');
const express = require('express');
const session = require('express-session'); 
const MongoStore = require('connect-mongo')(session);
const exphbs = require('express-handlebars');
const paypal = require('paypal-rest-sdk');
const flash = require('connect-flash');
const path = require('path');


mongoose.connect('mongodb://localhost:27017/app', {useNewUrlParser: true, socketTimeoutMS: 0, keepAlive: true, reconnectTries: 30}, (err, db)=>{
if(err){
    console.log('## INCOMMING MONGO ERROR ##' + err + '## MONGO ERROR END ##');
    throw err;
}else{
    console.log("-->  succesfully connected to Database!");
};

//db.once('')
});




const paypal_config = require('./lib/helpers/paypal_configuration.json');

paypal.configure(paypal_config);


const app = express()

// Root Routes
const _shop = require('./route/shop');
const _index = require('./route/index');
const _about = require('./route/about');
const _session = require('./route/session');
const _projects = require('./route/projects');


// View Engine
app.engine('.hbs', exphbs({
extname: '.hbs',
defaultLayout:'layout',
layoutsDir: __dirname + '/views/layouts/'
}));

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');

// BodyParser Middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());

// Set Static Folder | Public Folder
app.use(express.static(path.join(__dirname, 'public'))); 

// Express Session
app.use(session({
secret: "mylittle34secret",
cookie: { maxAge: (1 * 60 * 60 * 1000) },
saveUninitialized: false,
resave: false,
proxy: true,
store: new MongoStore({mongooseConnection: mongoose.connection}),

}));

// Passport init
app.use(passport.initialize());
app.use(passport.session());

// Express Body Validator
app.use(expressValidator({
errorFormatter: function(param, msg, value) {
    var namespace = param.split('.')
    , root    = namespace.shift()
    , formParam = root;

  while(namespace.length) {
    formParam += '[' + namespace.shift() + ']';
  }
  return {
    param : formParam,
    msg   : msg,
    value : value
  };
}
}));

// Connect Flash
app.use(flash());

// Vars for HTML doc   
app.use((req, res, next)=>{
res.locals.success_msg = req.flash('success_msg');
res.locals.warning_msg = req.flash('warning_msg');
res.locals.error_msg = req.flash('error_msg');
res.locals.info_msg = req.flash('info_msg');
res.locals.error = req.flash('error');
res.locals.user = req.user || null;
res.locals.session = req.session;
next();
});

// root/routes
app.use('/', _index);                // x/
app.use('/shop', _shop);             // x/shop
app.use('/about', _about);           // x/about  
app.use('/session', _session);       // x/session
app.use('/projects', _projects);     // x/projects

// Server
app.set('port', (process.env.PORT || 80));

app.listen(app.get('port'), ()=>{
console.log('-->  HTTP Server started on port %s', app.get('port'));
});

<3