nodejs连接mongodb出错,望解答。
发布于 9 年前 作者 motelinden 5115 次浏览 最后一次编辑是 8 年前 来自 问答

我直接在项目文件下npm install mongodb后,先试着连接下: var mongo = require(‘mongodb’), server = new mongo.Server(‘localhost’, 27017, {}), db = new mongo.Db(‘test’,server,{});

db.open(function(err,db){ if(!err){ console.log(‘connected’); }else{ throw err; } }) 错误提示如下:

err.png

9 回复

228行是那一行?? 给你个例子,我很久前用的,希望对你有用.  untitled1.png

现在的mongodb数据库以及mongodb驱动都进行了大幅度的版本迭代,你创建连接的方式仍旧是原始的。默认mongodb会安装最新版本的驱动程序(如果不指定package.json的话), 这样就造成了之前的连接方式现在不适用的情况。 解决方案: 1、查看所使用的mongodb驱动版本有无上述方法。 2、看下最新版本驱动的创建连接方式:http://mongodb.github.io/node-mongodb-native/2.0/

@creasy2010 看清楚路径,这里面都是包的源文件,一般不会有错误。还有你创建连接的方式目前mongodb2.X驱动已经舍弃掉。

@haozxuan 谢谢指出 .哈哈,还请多多指教呀

@creasy2010

我按官方的例子,首先通过mongod -dbpth xxx 打开mongodb服务器,显示正常: waiting for connections on port 27017.

然后运行官方例子: var MongoClient = require(‘mongodb’).MongoClient; var url = ‘mongodb://localhost:27017/test’;

MongoClient.connect(url, function(err, db) { console.log(“Connected correctly to server”); db.close(); });

直接出错,db是null:

cannot read property “close” of null.

@motelinden mongodb以及驱动版本多少?

@motelinden 我mongodb的版本是3.0.4 驱动版本是:2.0.39 untitled1.png

运行实例是可以的 untitled2.png untitled3.png

@creasy2010 mongo 3.0.4 驱动2.0.39 我怀疑是我机器的问题,现在还是xp。我换个机器试一下吧

问题已经解决,遇到这个问题的朋友请注意,在xp下,请讲mongdb驱动版本设为 1.4.38,并同时npm bson。

回到顶部