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: });