MongoError:处于无效状态的服务器实例未定义
Posted
技术标签:
【中文标题】MongoError:处于无效状态的服务器实例未定义【英文标题】:MongoError: server instance in invalid state undefined 【发布时间】:2016-12-24 04:54:54 【问题描述】:这是一个基于nodejs和express的网站。数据库是Mongodb。 问题是: 当我访问http://xxx/u/username 时,没关系。
但是在我编辑我的页面并重定向到http://xxx/u/username之后,它是错误的。mongodb中的数据发生了变化。
以下是错误信息:
Function.MongoError.create (\node_modules\mongodb\node_modules\mongodb-core\lib\error.js:29:11) 在 Server.connect (\node_modules\mongodb\node_modules\mongodb-core\lib\topologies\server.js:336:22) 在 Server.connect (\node_modules\mongodb\lib\server.js:355:17) 在 在 Db.open 打开 (\node_modules\mongodb\lib\db.js:223:19) (\node_modules\mongodb\lib\db.js:246:44) 在 Function.User.get (\models\user.js:45:11) at \routes\index.js:171:8 at Layer.handle [作为句柄请求] (\node_modules\express\lib\router\layer.js:95:5) 在下一个 (\node_modules\express\lib\router\route.js:131:13) 在 Route.dispatch (\node_modules\express\lib\router\route.js:112:3) 在 Layer.handle [as handle_request] (\node_modules\express\lib\router\layer.js:95:5) 在 \node_modules\express\lib\router\index.js:277:22 at param (\node_modules\express\lib\router\index.js:349:14) 在参数 (\node_modules\express\lib\router\index.js:365:14) 在 Function.process_params (\node_modules\express\lib\router\index.js:410:3) 在下一个 (\node_modules\express\lib\router\index.js:271:10)
【问题讨论】:
【参考方案1】:这里正在运行sn-p,我希望这会有所帮助
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);
);
【讨论】:
以上是关于MongoError:处于无效状态的服务器实例未定义的主要内容,如果未能解决你的问题,请参考以下文章
Json.NET 中的异常:处于“开始”状态的令牌 PropertyName 将导致无效的 JavaScript 对象
java.lang.IllegalStateException:远程端点处于 [TEXT_PARTIAL_WRITING] 状态,这是被调用方法的无效状态