这是一个基于nodejs和express的网站.Database是Mongodb
问题是:
当我访问http://xxx/u/username时,没关系。
但在我编辑页面并重定向到http://xxx/u/username之后,这是错误的.mongodb中的数据发生了变化。
以下是错误信息:
MongoError:处于无效状态的服务器实例未定义 Function.MongoError.create (\ node_modules \ mongodb的\ node_modules \ mongodb的核\ lib中\ error.js:29:11) 在Server.connect (\ node_modules \ mongodb的\ node_modules \ mongodb的核\ lib中\拓扑\ server.js:336:22) 在Server.connect(\ node_modules \ mongodb \ lib \ server.js:355:17)at 在Db.open打开(\ node_modules \ mongodb \ lib \ db.js:223:19) Function.User.get上的(\ node_modules \ mongodb \ lib \ db.js:246:44) (\ models \ user.js:45:11)位于Layer.handle的\ routes \ index.js:171:8 [as handle_request](\ node_modules \ express \ lib \ router \ layer.js:95:5) 在下一个(\ node_modules \ express \ lib \ router \ route.js:131:13)at Route.dispatch(\ node_modules \ express \ lib \ router \ route.js:112:3)at Layer.handle [as handle_request] (\ node_modules \ express \ lib \ router \ layer.js:95:5)at \ node_modules \ express \ lib \ router \ index.js:277:22 at param (\ node_modules \ express \ lib \ router \ index.js:349:14)at param Function.process_params上的(\ node_modules \ express \ lib \ router \ index.js:365:14) (\ node_modules \ express \ lib \ router \ index.js:410:3)下一步 (\ node_modules \表达\ lib中\路由器\ index.js:271:10)
答案 0 :(得分:0)
这是工作片段,我希望这会有所帮助
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);
});