节点未多次连接到 Mongo

Node not connecting to Mongo more than once

正在按照本教程尝试设置 MEAN 服务器: https://hackhands.com/mongodb-crud-mvc-way-with-passport-authentication/

使用这个 git: https://github.com/Hitman666/MEAN_MVC_3rdTutorial

我第一次连接到数据库时,它工作正常。在 CTRL+C 之后,然后再次 运行 "node server",我得到这个错误:

c:\mean2\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\base.js:246 抛出消息; ^ TypeError: 无法读取 属性 'length' of undefined at processResults (c:\mean2\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1581:31) at c:\mean2\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1619:20 at c :\mean2\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1157:7 在 c:\mean2\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1890:9 在 Server.Base._callHandler (c:\mean2\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\base.js:448:41) 在 c: \mean2\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\server.js:481:18 在 MongoReply.parseBody (c:\mean2\node_modules\mongoose\node_modules\mongodb\lib\mongodb\responses\mongo_reply.js:68:5) 为空。 (c:\mean2\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\server.js:439:20) at emit (events.js:107:17) at null。 (c:\mean2\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\connection_pool.js:201:13)

相关代码块:

development.js:

var port = 1337;

module.exports = {
    port: port,
    db: 'mongodb://localhost/todos'
};

mongoose.js:

var config = require('./config'),
mongoose = require('mongoose');

module.exports = function() {
    var db = mongoose.connect(config.db);
    return db;
};

config.js:

module.exports = require('./env/' + process.env.NODE_ENV + '.js');

server.js:

process.env.NODE_ENV = process.env.NODE_ENV || 'development';

var config = require('./config/config'),
    mongoose = require('./config/mongoose'),
    express = require('./config/express'),

var db = mongoose(),
    app = express();

app.listen(config.port);

module.exports = app;
console.log(process.env.NODE_ENV  + ' server running at http://localhost:' + config.port);

另外请注意,如果我再次 db.dropDatabase() 然后 "node server",它工作正常。

在终止应用程序之前,我使用这个小片段关闭了与 MongoDB 的连接:

process.on('SIGINT', function() {
    mongoose.close(function(){
        process.exit();
    });
});

问题是 "npm install mongoose" 没有安装正确版本的 Mongoose。将 package.json 编辑为最新版本后,一切正常。