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命令行参数处理模块commander使用实例
Sep 17 NodeJs
Nodejs极简入门教程(一):模块机制
Oct 25 NodeJs
nodejs 实现钉钉ISV接入的加密解密方法
Jan 16 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
Aug 30 NodeJs
NodeJS加密解密及node-rsa加密解密用法详解
Oct 12 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
NodeJs入门教程之定时器和队列
Mar 08 NodeJs
nodejs检测因特网是否断开的解决方案
Apr 17 NodeJs
nodejs中实现修改用户路由功能
May 24 NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 NodeJs
nodejs使用socket5进行代理请求的实现
Feb 21 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
espresso double下 咖啡粉超细时 饼压力对咖啡的影响
2021/03/03 冲泡冲煮
JAVA/JSP学习系列之六
2006/10/09 PHP
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
Firefox window.close()的使用注意事项
2009/04/11 Javascript
Dojo 学习要点
2010/09/03 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
Python中optparse模块使用浅析
2015/01/01 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
英文版销售经理个人求职信
2013/11/20 职场文书
个人简历自荐信
2014/06/26 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
详解SQL的窗口函数
2022/04/21 Oracle