MongoError:处于无效状态的服务器实例未定义

这是一个基于nodejs和express的网站。数据库是Mongodb。
问题是:
当我访问http:// xxx / u /用户名 ,这是好的。

但是当我编辑我的页面并redirect到http:// xxx / u / username ,这是错误的。MongoDB中的数据改变了。

这里是错误信息:

MongoError:服务器实例处于无效状态,在Server.connect(\ node_modules \ mongodb \ node_modules \ mongodb-mongodb.conf)中的Function.MongoError.create(\ node_modules \ mongodb \ node_modules \ mongodb-core \ lib \ error.js:29:11)打开(\ node_modules \ mongodb \ lib \ db.js:223:\),在Server.connect(\ node_modules \ mongodb \ lib \ server.js:355:17) (\ models \ user.js:45:11)在\ routes \ index.js:171:Db.open(\ node_modules \ mongodb \ lib \ db.js:246:44) 8在路由上的下一个(\ node_modules \ express \ lib \ router \ route.js:131:13)的Layer.handle [作为handle_request](\ node_modules \ express \ lib \ router \ layer.js:95:5)在\ node_modules \ express上的Layer.handle [作为handle_request](\ node_modules \ express \ lib \ router \ layer.js:95:5)发送(\ node_modules \ express \ lib \ router \ route.js:112:3) (\ node_modules \ express \ lib \ router \ index.js:365:14)在param(\ node_modules \ express \ lib \ router \ index.js:349:14)上的\ lib \ router \ index.js: 14)在Function.process_params(\ node_modules \ (\ node_modules \ express \ lib \ router \ index.js:271:10)

这里是工作片段,我希望这会有所帮助

var c = console; var app = require('express')(); var http = require('http').createServer(app); var Db = require('mongodb').Db, Server = require('mongodb').Server; var db = new Db('stock',new Server('localhost',27017)); var io = require('socket.io')(http,{path:'/infocenter/sockets'}); /****socket.io connection*****/ io.on('connection',function(socket){ console.log("Connected"); /****registration details***/ socket.on('regdetails',function(data){ db.open(function(err,mdb){ if(err){ c.log(err); } c.log("Mongo Registration Worked"); /***insert user if not exists***/ mdb.collection('users').find({name:data.fname}).toArray(function(err,results){ c.log(results.length); if(results.length == 0) { mdb.collection('users').insert({name:data.fname,pass:data.upass}); socket.emit('regmessage',{'message':'success','status':1}); mdb.close(); } else{ socket.emit('regmessage',{'message':'user existed'}); mdb.close(); } }); /***end insert user if not exists***/ }); }); /****end registration details***/ /***login details***/ socket.on('logindetails',function(data){ db.open(function(err,mdb){ if(err){ c.log(err); } c.log("Login Mongo Worked"); /***check if login is correct***/ mdb.collection('users').find({name:data.fname,pass:data.upass}).toArray(function(err,results){ if(results.length == 1) { socket.emit('logmessage',{'message':'login accepted','status':1}); mdb.close(); } else{ socket.emit('logmessage',{'message':'login is invalid','status':0}); mdb.close(); } }); /***end check if login is correct***/ }); }); /***end login details***/ }); /*****end socket.io connection *****/ var port = 7000; http.listen(port,function(){ console.log("Registration socket running on port:"+port); });