2016-01-24 39 views
0

请有人回应我这个代码有什么问题... 当我运行该程序时,我发现在MongoDB部分的错误。 在TypeError:mongoclient.db不是函数

var db = mongoclient.db(); 

var express = require('express'), 
 
    app = express(), 
 
    cons = require('consolidate'), 
 
    MongoClient = require('mongodb').MongoClient, 
 
    Server = require('mongodb').Server; 
 

 
app.engine('html', cons.swig); 
 
app.set('view engine', 'html'); 
 
app.set('views', __dirname + '/views'); 
 

 
var mongoclient = new MongoClient(new Server("localhost", 27017), {native_parser: true}); 
 

 
var db = mongoclient.db(); 
 

 
app.get('/', function(req, res){ 
 

 
    // Find one document in our collection 
 
    db.collection('hello_combined').findOne({}, function(err, doc) { 
 

 
     if(err) throw err; 
 

 
     res.render('hello', doc); 
 
    }); 
 
}); 
 

 
app.get('*', function(req, res){ 
 
    res.send('Page Not Found', 404); 
 
}); 
 

 
mongoclient.open(function(err, mongoclient) { 
 

 
    if(err) throw err; 
 

 
    app.listen(8080); 
 
    console.log('Express server started on port 8080'); 
 
});

+0

您需要.db的 –

回答

0

错误我只显示你这个代码,因为它显示了如何连接到一个数据库。

我并不需要Server = require('mongodb').Server;部分,你有。

的代码演示了如何

  1. 需要monogodb以获取在节点MongoDB的驱动程序。 require("mongodb").MongoClient

  2. 然后使用MongoClient.connect连接。在我的情况下,进出口连接到我叫crunchbase

  3. 然后你就可以查询我找到的category_code名称和收集companies在价值biotech领域的数据库中媒体链接现有的数据库。


var MongoClient = require("mongodb").MongoClient; 

MongoClient.connect("mongodb://localhost:27017/crunchbase", function(err, db){ 
    console.log("connected to the DB"); 

    var query = {"category_code" : "biotech"}; 
    db.collection("companies").find(query).toArray(function(err, docs){ 
     docs.forEach(function(doc){ 
      console.log(doc.name + " is a " + doc.category_code + "company") 
     }); 
    db.close() 
    }) 
}) 
+0

与'mongoclient.open'打开新蒙戈的建议,只有管理员可以存储凭据。所以你需要切换ops到所需的数据库。 – jolly