TypeError:mongoclient.db不是函数

时间:2016-01-24 03:52:21

标签: node.js mongodb express

请有人回答我此代码有什么问题... 当我运行程序时,我发现了mongodb部分中的错误。

中的错误
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');
});

1 个答案:

答案 0 :(得分:0)

我只向您展示此代码,因为它显示了如何连接到数据库。

我不需要你所拥有的Server = require('mongodb').Server;部分。

代码显示了如何

  1. 要求monogodb在Node中获取mongodb的驱动程序。 require("mongodb").MongoClient

  2. 然后使用MongoClient.connect进行连接。在我的情况下,我连接到我已经存在的名为crunchbase

  3. 的现有数据库
  4. 然后您可以查询数据库,我在集合category_code中找到名称为biotech且值为companies的字段。

  5. 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()
      })
    })