CNode

nodejs连接mongodb出错,望解答。

问答
Mmotelinden发布于11 年前最后回复11 年前9 回复5685 浏览0 收藏

我直接在项目文件下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)

C
creasy2010#1·11 年前

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

H
haozxuan#2·11 年前

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

H
haozxuan#3·11 年前
引用 creasy2010228行是那一行?? 给你个例子,我很久前用的,希望对你有用.

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

C
creasy2010#4·11 年前

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

M
motelinden#5·11 年前
引用 creasy2010@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.

C
creasy2010#7·11 年前

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

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

M
motelinden#8·11 年前

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

M
motelinden#9·11 年前

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

参与回复
登录后即可参与回复。登录