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中exports与module.exports的区别详细介绍
Jan 14 NodeJs
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
NodeJS学习笔记之FS文件模块
Jan 13 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
nodejs加密Crypto的实例代码
Jul 07 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
nodejs简单实现TCP服务器端和客户端的聊天功能示例
Jan 04 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
对mac下nodejs 更新到最新版本的最新方法(推荐)
May 17 NodeJs
使用koa-log4管理nodeJs日志笔记的使用方法
Nov 30 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 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下批量挂马和批量清马代码
2011/02/27 PHP
php简单图像创建入门实例
2015/06/10 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
Vue页面骨架屏的实现方法
2018/05/22 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
Python 关于反射和类的特殊成员方法
2017/09/14 Python
python实现简易通讯录修改版
2018/03/13 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
python实现自动登录
2018/09/17 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
python代码编写计算器小程序
2020/03/30 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
武汉瑞得软件笔试题
2015/10/27 面试题
ktv收银员岗位职责
2013/12/16 职场文书
入党积极分子思想汇报范文
2014/01/05 职场文书
大课间活动制度
2014/01/18 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
实习单位鉴定评语
2014/04/26 职场文书
员工合理化建议书
2014/05/19 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书