express:node throwing error on mongodb

1: C:\Node_app\microblog\node_modules\connect-mongo\lib\connect-mongo.js:126

       2:         throw new Error('Error connecting to database');

       3:               ^

       4: Error: Error connecting to database

       5:     at module.exports.MongoStore.__proto__ (C:\Node_app\microblog\node_module

       6:     at Db.open (C:\Node_app\microblog\node_modules\connect-mongo\node_modules

       7:     at Server.connect.connectionPool.on.server._serverState (C:\Node_app\micr

       8: ion\server.js:408:7)

       9:     at EventEmitter.emit (events.js:115:20)

      10:     at connection.on.connectionStatus (C:\Node_app\microblog\node_modules\con

      11: :93:15)

      12:     at EventEmitter.emit (events.js:91:17)

      13:     at Socket.errorHandler (C:\Node_app\microblog\node_modules\connect-mongo\

      14:     at Socket.EventEmitter.emit (events.js:88:17)

      15:     at Socket._destroy.self.errorEmitted (net.js:329:14)

      16:     at process.startup.processNextTick.process._tickCallback (node.js:244:9)

與此類似node throwing error on mongodb,一直報Db.open那裏出錯,查源代碼,發現應該是有err參數傳入,因爲之前從來沒接觸過mongodb--在某些文章中看到稍微有些瞭解,覺得是不是沒有安裝mongodb的問題呢?試了一下,果然如此。

windows下安裝mongodb:

1、下載MongoDB,下載頁面>>

2、解壓安裝,因爲我電腦的C盤非系統盤,默認是我工作目錄,所以我先解壓到這個盤裏。c:\mongodb (解壓出來有一個bin目錄,裏面很多exe文件),然後再建立一個目錄和文件

c:\mongodb\logs\mongodb.log

3、建立MongoDB的數據存放目錄,假設爲c:\mongodb_data\db

4、啓動Mongo Db服務,如果控制檯上看到類似的信息,則說明啓動成功

默認MongoDB監聽的端口是27017,mysql的是3306

5、測試連接

新開一個cmd窗口,進入mongodb的bin目錄,輸入mongo.exe,出現如下信息說明測試通過

繼續測試

1: >use test

       2: sitched to db test

       3: >db.foo.save({hello:1, word:2})

       4: >db.foo.find()

       5: "_id" : ObjectId("500a5fde4ad5d4c1884a5c3f"), "hello" : 1, "word" : 2 }

然後輸入exit,退出窗口,然後再輸入exit關閉該dos

6、註冊MongoDB爲系統服務。

1: C:\mongodb\bin>mongod.exe --dbpath=c:\mongodb_data\db --logpath=c:\mongodb\logs\mongodb.log --install

如果需要卸載該服務,使用“sc delete MongoDB”即可

7、啓動mongodb服務

net start MongoDB

打開任務管理器,可以看到進程已經啓動

如果需要停止服務: net stop MongoDb

再次啓動app,發現可以正常啓動了

到這裏express中使用mongodb來保存session就可以正常工作了,app.js的代碼如下:

1:  

       2: /**

       3:  * Module dependencies.

       4:  */

       5:  

       6: var express = require('express');

       7: var http = require('http');

       8: var routes = require('./routes');

       9:  

      10: var settings = require('./settings');

      11:  

      12: var MongoStore = require('connect-mongo')(express);

      13: //var connect = require('connect');

      14: //var MongoStore = require('connect-mongo')(connect);

      15:  

      16:  

      17: var sessionStore = new MongoStore({

      18:     db : settings.db

      19: }, function() {

      20:         console.log('connect mongodb success...');

      21:     });

      22:  

      23:  

      24:  

      25: var app = express();

      26:  

      27: app.configure(function(){

      28:   app.set('port', process.env.PORT || 3000);

      29:   app.set('views', __dirname + '/views');

      30:   app.set('view engine', 'jade');

      31:   app.use(express.favicon());

      32:   app.use(express.logger('dev'));

      33:   app.use(express.bodyParser());

      34:   app.use(express.methodOverride());

      35:  

      36:   app.use(express.cookieParser());

      37:   

      38:   app.use(express.session({

      39:     secret : settings.cookie_secret,

      40:     store : sessionStore,

      41:     cookie : {

      42:         maxAge : new Date(Date.now() + 1000 * 60 * 60)

      43:     }    

      44:   }));

      45:  

      46:   app.use(app.router);

      47:   app.use(express.static(__dirname + '/public'));

      48: });

      49:  

      50: app.configure('development', function(){

      51:   app.use(express.errorHandler());

      52: });

      53:  

      54: app.get('/', routes.index);

      55:  

      56:  

      57: http.createServer(app).listen(app.get('port'), function(){

      58:   console.log("Express server listening on port " + app.get('port'));

      59: });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章