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 相关文章推荐
使用forever管理nodejs应用教程
Jun 03 NodeJs
nodejs文件操作模块FS(File System)常用函数简明总结
Jun 05 NodeJs
nodejs加密Crypto的实例代码
Jul 07 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
nodejs个人博客开发第六步 数据分页
Apr 12 NodeJs
详解如何在NodeJS项目中优雅的使用ES6
Apr 22 NodeJs
NodeJS创建最简单的HTTP服务器
May 15 NodeJs
Express+Nodejs 下的登录拦截实现代码
Jul 01 NodeJs
nodejs初始化init的示例代码
Oct 10 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 NodeJs
nodejs使用async模块同步执行的方法
Mar 02 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中ADODB类详解
2008/03/25 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
2011/08/09 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
JS判断iframe是否加载完成的方法
2016/08/03 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
Vue 请求传公共参数的操作
2020/07/31 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
python二叉树的实现实例
2013/11/21 Python
Python创建系统目录的方法
2015/03/11 Python
浅谈Python基础—判断和循环
2019/03/22 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
沈阳故宫导游词
2015/01/31 职场文书
工程部主管岗位职责
2015/02/12 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python