专栏首页游戏杂谈express:node throwing error on mongodb

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用Express3.0实现<Node.js开发指南>中的微博系统

    <node.js开发指南>这本书,之前有评论过,但之前并不清楚express2.x与3.x会有如此大的差异,导致在写例子的过程中痛苦不已。为了避免更多的同学在...

    meteoric
  • 快速找到自己想要用到的cocos2d-x的缓冲动画

    游戏中在做很多动画时,需要用到缓冲来增强表现。比如宝箱“鼓”几下,然后“蹦”的一下打开。很多时候要调效果时,需要轮着试,如果有一张图和实际示例效果,那就省很多事...

    meteoric
  • flash在网页应用中的一些特殊应用场景

    一般flash在网页显示出来就可以了,不用说与JavaScript之间交互的问题,但有时应用又较为特殊(须兼容各主流浏览器):

    meteoric
  • “玄关”与“开机页”

    本文跨界思考室内设计中的“玄关”空间与手机APP“开机页”之间的异同点,思考互相借鉴的可能。 ——这是一篇符合本公众号“设计Mix科技”出发点的文章。 1、...

    mixlab
  • tomcat部署应用时设置context path为空的上下文路径问题

    在<Context>配置中包含如下信息: 1. 配置docBase值为:docBase="app"或者docBase="app.war"; 2. path为空,...

    2Simple
  • K8S学习笔记之Kubernetes 部署策略详解

    在Kubernetes中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了。

    Jetpropelledsnake21
  • 三分钟看懂机器学习中应该注意哪些问题?

    本文简单谈谈机器学习中应该注意的一些问题。仅供大家参考学习和讨论。 1. 特征预处理 机器学习中的输入数据必须是数值类型的,但是现实问题中不免会有一些类别类型的...

    CDA数据分析师
  • uni-app官方教程学习手记

    大概在今年的十月份左右,我了解到Dcloud推出了uni-app。当时下载了一个Hbuilder X,下载了官方提供的hello示例教程。经过一番努力,在云端打...

    siberiawolf
  • 图像相似度比较和检测图像中的特定物

    对普通人而言,识别任意两张图片是否相似是件很容易的事儿。但是从计算机的角度来识别的话,需要先识别出图像的特征,然后才能进行比对。在图像识别中,颜色特征是最为常见...

    fengzhizi715
  • 图像的灰度直方图、直方图均衡化、直方图规定化(匹配)

    一幅图像由不同灰度值的像素组成,图像中灰度的分布情况是该图像的一个重要特征。图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所占的...

    233333

扫码关注云+社区

领取腾讯云代金券