最近在node中使用mongodb的时候,出现了一个错误,原代码如下:
//引入mongodb模块,获得客户端对象
var mongo = require("mongodb");//引入mongo模块
var MongoClient = require("mongodb").MongoClient;//MongoClient对象
var dburl = "mongodb://localhost:27017/test";//存储地址
//封装一个连接数据库的函数,使用MongoClient类的connect( )方法进行数据库连接
function connectDB(callback) {
MongoClient.connect(dburl, (err, db) => {
if (err) {
callback(err, null);
return;
}
callback(err, db);
});
}
//封装一个插入数据的函数
exports.insertData = (collectionName, json, callback) => {
connectDB((err, db) => {
db.collection(collectionName).insertOne(json, (err, result) => {
callback(err, result);
db.close(); //关闭数据库
})
})
}
这时,会报出一个错误,如图:
在确认代码没问题之后,各种百度,终于找到问题原因:
mongodb的版本问题。因为db.collection在高版本已经被废除了,这里我install的是最新版本:3.0.33。
解决方法:把项目根目录下的package.json文件中使用的mongodb版本改成2.3.33的:
"dependencies": {
"mongodb": "^2.2.33"
}
然后:
npm install
更新一下mongodb的版本就可以了。