node.js连接MongoDB数据库,db.collection is not a function完美解决
解决方法一、
mongodb数据库版本回退:
这个错误是出在mongodb的库中,在nodejs里的写法和命令行中的写法不一样,3.0的api已经更新和以前的版本不不一样,我们在npm中没指定版本号的安装就默认安装的是3.0版本。
可以参考3.0的api文档:http://mongodb.github.io/node-mongodb-native/3.0/api/
在项目中找到package.json文件,这个文件中记录着我们项目的信息及引用的模块,就像我图片中那样,我原来是3.1.1版本的,我们找到mongodb将其版本改为2.3.33。
打开命令行在项目根路径下: npm install,更新一下,我们就可以使用2.3.33版本的mongodb模块了。
解决方法二、
nodejs连接mongodb新写法
1、封装数据库的增删改查的操作并向外暴露
module.exports = {
//插入数据
insertData : function(db, tableName, insertData, callback) {
//连接到表 dynamic
var collection = db.collection(tableName);
collection.insert(insertData, function(err, result) {
if(err)
{
console.log('Error:'+ err);
return;
}
callback(result);
});
},
//查询数据
selectData : function(db, tableName, whereStr, callback) {
//连接到表
var collection = db.collection(tableName);
collection.find(whereStr).toArray(function(err, result) {
if(err)
{
console.log('Error:'+ err);
return;
}
callback(result);
});
},
//更新数据
updateData : function(db, tableName, whereStr, updateStr, callback) {
//连接到表
var collection = db.collection(tableName);
collection.update(whereStr,updateStr, function(err, result) {
if(err)
{
console.log('Error:'+ err);
return;
}
callback(result);
});
},
//删除数据
delData : function(db, tableName, whereStr, callback) {
//连接到表
var collection = db.collection(tableName);
collection.remove(whereStr, function(err, result) {
if(err)
{
console.log('Error:'+ err);
return;
}
callback(result);
});
}
}
2、引入需要的包
let MongoClient = require('mongodb').MongoClient;
//连接字符串
let DB_CONN_STR = 'mongodb://localhost:27017/gomall';
let database = require("./3.0_actiondb");//3.0_actiondb上述的文件名
let dbName = 'gomall';
//runoob是表的名称
MongoClient.connect(DB_CONN_STR, function(err, client) {
let whereStr = {}
console.log("连接成功!" + client);
let db = client.db(dbName)
database.selectData(db, "runoob", whereStr, function(result) {
console.log(result);
res.send(JSON.stringify(result));
client.close();
});
});
总结:建议使用第二中方法,个人认为应该追随技术的更新,不断学习,不被社会淘汰。
node.js连接MongoDB数据库,db.collection is not a function完美解决的更多相关文章
- Node.js 连接 MongoDB数据库
安装指令:npm install mongodb var mongodb = require("mongodb");// console.log(mongodb); var Mon ...
- Node.js连接MongoDB数据库
首先要启动MongoDB服务器 先找到你的mongoDb安装目录,我的如下:就在bin文件夹下创建一个data文件夹,data内包含两个空文件夹,如下: 接着回到bin文件夹处,按住shift键,右击 ...
- Node.js连接MySQL数据库及构造JSON的正确姿势
做一下整理,以前也很随意的引入包链接数据库,后来发现常常连接出问题,异常退出,后来使用在网上一个方法解决问题,网址由于书签丢失,抱歉不能引用了.再有就是简单的模块化下,使得目录合理点,再有就是说明一下 ...
- [Node.js]连接mongodb
摘要 前面介绍了node.js操作mysql以及redis的内容,这里继续学习操作mongodb的内容. 安装驱动 安装命令 cnpm install mongodb 安装成功 数据库操作 因为mon ...
- Node.js+Express+MongoDB数据库实现网页注册登入功能
通过 Node.js + Express + MongoDB 实现网页注册账号 和 登入账号的功能 项目准备: 1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.h ...
- windows下安装mongodb以及node.js连接mongodb
一.MongoDB 下载 下载地址 https://www.mongodb.com/download-center#community 选择windows版下载,然后安装. 二.安装完毕后创建数据 ...
- node.js连接本地数据库及json返回数据
新建一个文件夹node.js,目录下打开命令初始化一下 cnpm init 然后下载express框架 cnpm install express --save 接着下载数据库的依赖 cnpm inst ...
- 利用express.js连接mongodb数据库
var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = "mongodb://localhost:27017/ ...
- node.js操作mongoDB数据库
链接数据库: var mongo=require("mongodb"); var host="localhost"; var port=mongo.Connec ...
随机推荐
- window.onresize监听事件
window.onresize监听事件 onresize 事件会在窗口或框架被调整大小时发生. 支持onresize的标签:<a>, <address>, <b>, ...
- mysql学习【第5篇】:事务索引备份视图
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第5篇]:事务索引备份视图 MySQL事务 事务就是将一组SQL语句放在同一批次 ...
- Java之旅_高级教程_实例_数组
摘自:http://www.runoob.com/java/java-examples.html 1.数组排序及元素查找 以下实例演示了如何使用sort()方法对Java数组进行排序,及如何使用 bi ...
- HashMap如何做循环遍历
1.TestCase:
- Vue子组件调用父组件的方法
Vue子组件调用父组件的方法 Vue中子组件调用父组件的方法,这里有三种方法提供参考 第一种方法是直接在子组件中通过this.$parent.event来调用父组件的方法 父组件 <temp ...
- 【pyqtgraph绘图】线条,填充和颜色
解读官方API-线条,填充和颜色 参考: http://www.pyqtgraph.org/documentation/style.html 线条,填充和颜色 Qt依靠其QColor,QPen和QBr ...
- commonjs模块和es6模块的区别?
commonjs模块和es6模块最主要的区别:commonjs模块是拷贝,es6模块是引用,但理解这些,先得理解对象复制的问题,在回过头来理解这两模块的区别. 一.基本数据类型的模块 ./a1.js ...
- HSSF与XSSF导出excel文档
Apache POI Apache POI 是用Java编写的免费开源的跨平台的 Java API,它可以创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文 ...
- 1、 LwIP协议栈规范翻译——简介
1.简介 在过去几年中,计算机和计算机支持设备接之间的互联到无线网络日趋增加.计算机已经越来越无缝的集成在了日常的设备且价格也在下降.同时,无线网络技术例如蓝牙[HNI+98]和IEEE802.11b ...
- 20170728 Celery项目 后台处理SQL SERVER的一个异常
-- 1. 感觉是访问DB 失败了,失败原因不明确 -- 2. 考虑解决问题的解决办法,后台记录异常,并重新发送任务. 具体如何来实现