NodeJS连接MongoDB数据库时报错的快速解决方法


Posted in NodeJs onMay 13, 2016

今天第一次尝试连接MongoDB数据库,具体步骤也很简单。

首先,通过NodeJS运行环境安装MongoDB包,进入要安装的目录,执行语句

npm install mongodb安装成功后,通过如下语句测试与数据库建立连接几关闭数据库

var mongo = require('mongodb');
var host = "localhost";
var port = mongo.Connection.DEFAULT_PORT;
//创建MongoDB数据库所在服务器的Server对象
var server = new mongo.Server(host, port, {auto_reconnect:true});
//创建MongoDB数据库
var db = new mongo.Db('node-mongo-example', server, {saft:true});
//数据库连接操作
db.open(function(err, db){
  if(err) {
    console.log('连接数据库发生错误');
    throw err;}
  else{
    console.log("成功建立数据库连接");
    db.close();
  }
});
db.on('close',function(err,db){
  if (err) {throw err;}
  else{
    console.log("成功关闭数据库");
  }
});

在node的运行环境中运行以上代码所在文件,出现如下所示错误:

NodeJS连接MongoDB数据库时报错的快速解决方法

mongodb数据库的默认端口为27017,所以我把port改成默认的27017,运行文件后,仍然报错,如下所示:

NodeJS连接MongoDB数据库时报错的快速解决方法

很显然,错误本身不是端口号属性问题,而是无法连接默认的MongoDB数据库服务,最后终于明白造成以上错误的原因是没有运行数据库服务器的可执行文件。

具体启动方法为:

在运行环境中进入MongoDB的安装位置,进入bin文件夹下,运行如下代码:

D:\Mongodb\bin>mongod --dbpath D:\Mongodb\data

一般情况下,上面的node.js代码就可以正常运行了

但在最初尝试时,我还遇到过一个问题,就是启动上面的数据库服务器时,在无法启动,在反馈信息中有一条错误为:

2015-12-13T00:49:12.195+0600 I STORAGE [initandlisten] exception in initAndListen: 28663 Cannot start server. The default storage engine 'wiredTiger' is not available with this build of mongod. Please specify a different storage engine explicitly, e.g. --storageEngine=mmapv1., terminating 2015-12-13T00:49:12.195+0600 I CONTROL [initandlisten] dbexit: rc: 100

查找资料发现,这是由于版本冲突造成存储路径的混淆,具体解决方案为在bin目录下运行如下语句:

D:\MongoDB\bin mongod --storageEngine=mmapv1 --dbpath [your-path]

 再启动数据库服务就成功了。

可以通过访问http:\\localhost:27017,可以看到如下提示:

It looks like you are trying to access MongoDB over HTTP on the native driver port.就可以启动成功了!

以上这篇NodeJS连接MongoDB数据库时报错的快速解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
NodeJS与Mysql的交互示例代码
Aug 18 NodeJs
nodejs命令行参数处理模块commander使用实例
Sep 17 NodeJs
nodejs下打包模块archiver详解
Dec 03 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
用nodejs的实现原理和搭建服务器(动态)
Aug 10 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
NodeJS实现不可逆加密与密码密文保存的方法
Mar 16 NodeJs
NodeJs实现简易WEB上传下载服务器
Aug 10 NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 NodeJs
浅谈JS和Nodejs中的事件驱动
May 05 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 #NodeJs
Nodejs学习item【入门手上】
May 05 #NodeJs
NodeJS的Promise的用法解析
May 05 #NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 #NodeJs
Nodejs Stream 数据流使用手册
Apr 17 #NodeJs
NodeJS创建基础应用并应用模板引擎
Apr 12 #NodeJs
nodeJs爬虫获取数据简单实现代码
Mar 29 #NodeJs
You might like
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
学习php笔记 字符串处理
2010/10/19 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
JavaScript中的事件处理
2008/01/16 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
jquery自定义表格样式
2015/11/23 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
python中栈的原理及实现方法示例
2019/11/27 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
Servlet的生命周期
2013/08/25 面试题
自我推荐信范文
2014/05/09 职场文书
推荐信怎么写
2014/05/09 职场文书
先进工作者个人总结
2015/02/15 职场文书
针对吵架老公保证书
2015/05/08 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
微信小程序用户授权最佳实践指南
2021/05/08 Javascript