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模块之获得更新和删除影响的行数的方法
Mar 18 NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
NodeJS制作爬虫全过程(续)
Dec 22 NodeJs
nodeJs爬虫获取数据简单实现代码
Mar 29 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
详解nodejs模板引擎制作
Jun 14 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
NodeJS实现视频转码的示例代码
Nov 18 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
NodeJS实现一个聊天室功能
Nov 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
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
php桌面中心(三) 修改数据库
2007/03/11 PHP
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
Python深入学习之内存管理
2014/08/31 Python
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
python异步存储数据详解
2019/03/19 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
大学班级计划书
2014/04/29 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
服务承诺书
2015/01/19 职场文书
新闻通讯稿范文
2015/07/22 职场文书
Python实现为PDF去除水印的示例代码
2022/04/03 Python