解决方法一、

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. B. Salty Fish Go! -期望题(瞎搞题)

    链接:https://www.nowcoder.com/acm/contest/104/B来源:牛客网 题意:A few days ago, WRD was playing a small game ...

  2. piano class 13

    1,手放在琴键上,不妨碍另外一只手弹奏即可 2,识别五线谱可以加上几条线,减去几条线,一下子就记住了所有的 3,弹得还是有点快,要慢弹奏,四四拍的理论上比四三拍的还要慢,也要看风格 4,四二拍,强弱, ...

  3. sed中支持变量的处理方法

    1.eval sed ’s/$a/$b/’ filename2.sed "s/$a/$b/" filename3.sed ’s/’$a’/’$b’/’ filename 4.sed ...

  4. winform进度条

    参考资料: http://www.cnblogs.com/zzy0471/archive/2010/12/12/1903602.html http://www.cnblogs.com/haogj/ar ...

  5. coreseek搜索

    参考文档地址:http://github.tiankonguse.com/doc/sphinx/

  6. Django 的操作

    安装: pip install Django 创建django工程 django-admin startproject  mysite python manage.py startapp blog / ...

  7. 转:eclipse maven build、maven install 等区别

    原文地址:eclipse maven build.maven install 等区别

  8. threadPoolExecutor的基本解析

    线程池的构造方法中常见参数简介 corepoolsize:核心线程数,即便这里的线程处于空闲状态,也不会被回收,会一直存在线程池中 maxmumpoolsize:线程池所能容纳的最大线程数,超过这个数 ...

  9. 一步步搭建 Spring Boot maven 框架的工程

    摘要:让Spring应用从配置到运行更加快速,演示DIY Spring Boot 框架时,如何配置端口号,如何添加日志. Spring Boot 框架帮助开发者更容易地创建基于Spring的应用程序和 ...

  10. ubuntu编译opencv3.1遇到的问题

    网上有很多关于编译的具体步骤,我也是按照网上的说明一步步操作的,这里主要想记录的是在安装完之后,import cv2不存在以及其他的libopencv_hdf.so.3.1等找不到的问题,如果将这样的 ...