Node.js和Native MongoDB连接失败

我试图在我的app.js节点应用程序中设置一个简单的mongodbtesting服务器,但我一直得到“TypeError:无法读取属性”arbiterOnly“未定义”。 我在本地主机上运行它,我已经通过运行npm install mongodb在我正在做的应用程序中的文件夹安装mongo db。任何帮助一个我做错了会大大apreciated

这里是我的应用程序的代码

var express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = require('http') , path = require('path'); var Db = require('mongodb').Db; var Server = require('mongodb').Server; var client = new Db('test', new Server('localhost:', 3100, {})); var insertData = function(err, collection) { collection.insert({name: "Kristiono Setyadi"}); collection.insert({name: "Meghan Gill"}); collection.insert({name: "Spiderman"}); // you can add as many object as you want into the database } var removeData = function(err, collection) { collection.remove({name: "Spiderman"}); } var updateData = function(err, collection) { collection.update({name: "Kristiono Setyadi"}, {name: "Kristiono Setyadi", sex: "Male"}); } var listAllData = function(err, collection) { collection.find().toArray(function(err, results) { console.log(results); }); } var app = express(); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('your secret here')); app.use(express.session()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); }); client.open(function(err, pClient) { client.collection('test_insert', insertData); // client.collection('test_insert', removeData); // etc. }); var people = [{name:'Keth',age:'33',email:'ktater@gmail.com'}, {name:'Donny',age:'20',email:'donjuan86@hotmail.com'}, {name:'Loran',age:'26',email:'geegeenat@facebook.com'}, {name:'Max',age:'18',email:'axxanan@gmail.com'}]; app.configure('development', function(){ app.use(express.errorHandler()); }); app.get('/', routes.index); app.get('/users', user.list); app.get('/people', function(req, res){ res.render('peeps', {people:people}); }); app.get('/people/:id', function(req, res){ var guy; for (var i =0 ; i < people.length ; i++) { if(people[i].name == req.params.id) guy = people[i]; } res.render('viewPerson', {guy:guy}); }); http.createServer(app).listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); }); 

我在这里的第一个猜测是连接不开放。 尝试在client.open函数中用console.logloggingerr 。 另外,你从testing代码中获得的post大概有18个月的时间,这可能是代码已经过时了。