节点不能连接到Mongo不止一次

尝试设置MEAN服务器,请参阅本教程: https : //hackhands.com/mongodb-crud-mvc-way-with-passport-authentication/

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

我第一次连接到数据库,它工作正常。 CTRL + C后,再运行“节点服务器”,我得到这个错误:

c:\ mean2 \ node_modules \ mongoose \ node_modules \ mongodb \ lib \ mongodb \ connection \ base.js:246 throw message; ^ TypeError:无法在c:\ mean2 \ node_modules \ mongoose \ node_modules中读取在processResults(c:\ mean2 \ node_modules \ mongoose \ node_modules \ mongodb \ lib \ mongodb \ db.js:1581:31)中未定义的属性'length' \ mongodb \ lib \ mongodb \ db.js:1619:20在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)在MongoReply.parseBody(m:\ mean2 \ node_modules \ mongoose \ node_modules \ mongodb \ lib \ mongodb \ responses \ mongo_reply .js:68:5)at null。 (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_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()再次“节点服务器”,它工作正常。

问题是“npm install mongoose”没有安装适当版本的Mongoose。 一旦我编辑package.json到最新的版本,一切正常。

我已经使用这个小片段来closures我的连接到MongoDB之前终止的应用程序:

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