我直接在项目文件下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; } }) 错误提示如下:
228行是那一行?? 给你个例子,我很久前用的,希望对你有用.
现在的mongodb数据库以及mongodb驱动都进行了大幅度的版本迭代,你创建连接的方式仍旧是原始的。默认mongodb会安装最新版本的驱动程序(如果不指定package.json的话), 这样就造成了之前的连接方式现在不适用的情况。 解决方案: 1、查看所使用的mongodb驱动版本有无上述方法。 2、看下最新版本驱动的创建连接方式:http://mongodb.github.io/node-mongodb-native/2.0/
@creasy2010 看清楚路径,这里面都是包的源文件,一般不会有错误。还有你创建连接的方式目前mongodb2.X驱动已经舍弃掉。
@haozxuan 谢谢指出 .哈哈,还请多多指教呀
我按官方的例子,首先通过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
运行实例是可以的
@creasy2010 mongo 3.0.4 驱动2.0.39 我怀疑是我机器的问题,现在还是xp。我换个机器试一下吧
问题已经解决,遇到这个问题的朋友请注意,在xp下,请讲mongdb驱动版本设为 1.4.38,并同时npm bson。