解决方法一、

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完美解决的更多相关文章

  1. Node.js 连接 MongoDB数据库

    安装指令:npm install mongodb var mongodb = require("mongodb");// console.log(mongodb); var Mon ...

  2. Node.js连接MongoDB数据库

    首先要启动MongoDB服务器 先找到你的mongoDb安装目录,我的如下:就在bin文件夹下创建一个data文件夹,data内包含两个空文件夹,如下: 接着回到bin文件夹处,按住shift键,右击 ...

  3. Node.js连接MySQL数据库及构造JSON的正确姿势

    做一下整理,以前也很随意的引入包链接数据库,后来发现常常连接出问题,异常退出,后来使用在网上一个方法解决问题,网址由于书签丢失,抱歉不能引用了.再有就是简单的模块化下,使得目录合理点,再有就是说明一下 ...

  4. [Node.js]连接mongodb

    摘要 前面介绍了node.js操作mysql以及redis的内容,这里继续学习操作mongodb的内容. 安装驱动 安装命令 cnpm install mongodb 安装成功 数据库操作 因为mon ...

  5. Node.js+Express+MongoDB数据库实现网页注册登入功能

    通过 Node.js + Express + MongoDB 实现网页注册账号 和 登入账号的功能 项目准备: 1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.h ...

  6. windows下安装mongodb以及node.js连接mongodb

    一.MongoDB 下载 下载地址  https://www.mongodb.com/download-center#community  选择windows版下载,然后安装. 二.安装完毕后创建数据 ...

  7. node.js连接本地数据库及json返回数据

    新建一个文件夹node.js,目录下打开命令初始化一下 cnpm init 然后下载express框架 cnpm install express --save 接着下载数据库的依赖 cnpm inst ...

  8. 利用express.js连接mongodb数据库

    var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = "mongodb://localhost:27017/ ...

  9. node.js操作mongoDB数据库

    链接数据库: var mongo=require("mongodb"); var host="localhost"; var port=mongo.Connec ...

随机推荐

  1. 【每日dp】 Gym - 101889E Enigma 数位dp 记忆化搜索

    题意:给你一个长度为1000的串以及一个数n 让你将串中的‘?’填上数字 使得该串是n的倍数而且最小(没有前导零) 题解:dp,令dp[len][mod]为是否出现过 填到第len位,余数为mod 的 ...

  2. 一道与时间差有关的SQL面试题

    题目: 一组通话记录(总共500万条):ID 主叫号码 被叫号码 通话起始时间 通话结束时间 通话时长1 98290000 0215466546656 2007-02-01 09:49:53.000 ...

  3. 如何使用ffmpeg

    https://blog.csdn.net/minger1202/article/details/52468986  解码 https://www.jianshu.com/p/c6cfe2edd083 ...

  4. 在U盘上安装GRUB2直接引导ISO

    本文的内容来源于 http://maxmars.net/blog/2012/10/02/boot-multiple-iso-from-usb-using-linux/ 以下所有命令都在 root 用户 ...

  5. iOS中的静态库与动态库,区别、制作和使用

    如果我们有些功能要给别人用,但是又不想公开代码实现,比如高德地图.第三方登录分享等等,这时候我们就要打包成库了.库分静态库和动态库两种: 静态库:以.a 和 .framework为文件后缀名.动态库: ...

  6. 什么是渲染目标(render target)&& 渲染到纹理(Render To Texture, RTT)详解

    渲染到纹理(Render To Texture, RTT)详解 RTT是现在很多特效里面都会用到的一项很基本的技术,实现起来很简单,也很重要.但是让人不解的是网上搜索了半天只找到很少的文章说这个事儿, ...

  7. ios开发dismiss所有控制器

    -(void)dismissToRootViewController { UIViewController *vc = self; while (vc.presentingViewController ...

  8. 《Mysql 日志结构》

    推荐一首歌 - <往后余生>王贰浪 发现自己每天就听这么几首歌 一:慢查询日志 - SQL 完成查询并完成对于锁资源的释放之后,msqld 会将符合条件的SQL写入慢日志.因此慢日志可能和 ...

  9. Appium入门(5)__ Appium测试用例(1)

    步骤为:启动AVD.启动Appium.写用例(python).执行 一.启动Android模拟器                   二.启动Appium Server 双击appium图标启动,配置 ...

  10. ios禁止页面下拉

    document.querySelector('body').addEventListener('touchmove', function(e) {     e.preventDefault(); } ...