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异步编程
Dec 04 NodeJs
nodejs开发微博实例
Mar 25 NodeJs
nodejs 的 session 简单使用
Jun 06 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
解析NodeJs的调试方法
Dec 11 NodeJs
NodeJs下的测试框架Mocha的简单介绍
Feb 22 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
手把手教你把nodejs部署到linux上跑出hello world
Jun 19 NodeJs
nodejs中sleep功能实现暂停几秒的方法
Jul 12 NodeJs
nodejs acl的用户权限管理详解
Mar 14 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 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预定义变量分析
2019/06/25 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
浅谈python多线程和队列管理shell程序
2015/08/04 Python
python爬取个性签名的方法
2018/06/17 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
意大利在线药房:Saninforma
2021/02/11 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
擅自离岗检讨书
2014/02/11 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
小学感恩节活动总结
2015/03/24 职场文书
国庆阅兵观后感
2015/06/15 职场文书
投诉信范文
2015/07/02 职场文书
2016年元旦致辞
2015/08/01 职场文书
python异常中else的实例用法
2021/06/15 Python
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android