express:node throwing error on mongodb

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 1: C:\Node_app\microblog\node_modules\connect-mongo\lib\connect-mongo.js:126 2: throw new Error('Error connecting to ...

   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,发现可以正常启动了

image

 

到这里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: });
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
19天前
|
JavaScript 前端开发 中间件
探索后端技术:Node.js与Express框架的完美融合
【10月更文挑战第7天】 在当今数字化时代,Web应用已成为日常生活不可或缺的一部分。本文将深入探讨后端技术的两大重要角色——Node.js和Express框架,分析它们如何通过其独特的特性和优势,为现代Web开发提供强大支持。我们将从Node.js的非阻塞I/O和事件驱动机制,到Express框架的简洁路由和中间件特性,全面解析它们的工作原理及应用场景。此外,本文还将分享一些实际开发中的小技巧,帮助你更有效地利用这些技术构建高效、可扩展的Web应用。无论你是刚入门的新手,还是经验丰富的开发者,相信这篇文章都能为你带来新的启发和思考。
|
24天前
|
开发框架 JavaScript 前端开发
使用 Node.js 和 Express 构建 Web 应用
【10月更文挑战第2天】使用 Node.js 和 Express 构建 Web 应用
|
5天前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的完美结合
【10月更文挑战第21天】本文将引导你走进Node.js和Express框架的世界,探索它们如何共同打造一个高效、可扩展的后端服务。通过深入浅出的解释和实际代码示例,我们将一起理解这一组合的魅力所在,并学习如何利用它们来构建现代Web应用。
23 1
|
19天前
|
JSON JavaScript 前端开发
Node.js Express 框架
10月更文挑战第7天
19 2
|
22天前
|
JSON JavaScript 前端开发
使用 Node.js 和 Express 构建 RESTful API 服务器
【10月更文挑战第3天】使用 Node.js 和 Express 构建 RESTful API 服务器
|
27天前
|
Web App开发 JavaScript 前端开发
使用Node.js和Express框架构建Web服务器
使用Node.js和Express框架构建Web服务器
|
28天前
|
Web App开发 JavaScript API
构建高效后端系统:Node.js与Express框架的实践之路
【9月更文挑战第37天】在数字化时代的浪潮中,后端开发作为技术架构的核心,承载着数据处理和业务逻辑的重要职责。本文将深入探讨如何利用Node.js及其强大的Express框架来搭建一个高效、可扩展的后端系统。我们将从基础概念讲起,逐步引导读者理解并实践如何设计、开发和维护一个高性能的后端服务。通过实际代码示例和清晰的步骤说明,本文旨在为初学者和有经验的开发者提供一个全面的指南,帮助他们在后端开发的旅途上走得更远。
37 3
|
6天前
|
NoSQL 前端开发 JavaScript
Node.js 连接 MongoDB
10月更文挑战第20天
15 0
|
2月前
|
Web App开发 JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的深度整合
【9月更文挑战第28天】在现代Web开发领域,Node.js和Express框架的结合已成为打造高性能、易扩展应用的黄金组合。本文将深入探讨如何利用这一技术栈优化Web应用架构,提供具体实践指导,并分析其性能提升的内在机制。通过代码示例,我们将展示从基础搭建到高级功能的实现过程,旨在为开发者提供一条清晰的学习路径,以实现技术升级和项目效率的双重提升。
44 3
|
17天前
|
NoSQL 前端开发 JavaScript
Node.js 连接 MongoDB
10月更文挑战第9天
34 0