Mongodb db.get(' usercollection')无法正常工作

时间:2016-10-14 13:39:18

标签: node.js mongodb express monk

问题是db无法正常工作

app.js

var express = require('express');
var path = require('path');
var http = require('http');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/nodetest1');

var routes = require('./routes');
var users = require('./routes/users');
var app = express.createServer();
app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.use(function(req,res,next){
  req.db = db;
  next();
});

routes / index.js

exports.index = function(req, res){
  var db = req.db;
  var collection = db.get('usercollection');
  collection.find({},{},function(e,docs){
    res.render('userlist', {
      "userlist" : docs
    });
  });
};

当我运行用户列表时,我在行db.get(' usercollection')上收到错误。当我记录req.db时,它是未定义的。 如何解决?

1 个答案:

答案 0 :(得分:0)

您可以直接在index.js文件中使用db模块

module.exports = (function() {
'use strict';
var apiRoutes = express.Router();

var Server = mongo.Server;
var Db = mongo.Db;
var BSON = mongo.BSONPure;

function connexionDataBase(callback){

var server = new Server('your db URL', 27017, {auto_reconnect: true}); 
db = new Db('you Db', server);
db.open(function(err, db) {

    if(!err) {

        console.log("Connected to 'you Db' database");

        callback(err,db);

    }
    else{

        console.log("not Connected to 'you Db' database");
        callback(err,db);

    }
});

})();

在您的app.js中,您可以将应用路由重定向到index.js:

var express = require('express');
var index = require('./index');
var app = express();
app.use('/index',index);