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

时间:2016-08-17 13:35:24

标签: node.js mongodb express

这是一个基于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)

1 个答案:

答案 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);  

    });