sql >> Base de Datos >  >> NoSQL >> MongoDB

TypeError:no se puede llamar al método 'get' de indefinido

Tu app.use debe escribirse antes de su app.get . La app.get es llamado primero por Express.

var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/notepad');

var app = express();

// mongoDB
// Do all your "pre-route" use() functions first
app.use(function (req, res, next) {
   req.locals.db = db; // this is setting up db property to request
   next();
});

app.get('/users', routes.userlist);

En tus rutas...

var db = req.locals.db; // Instead of req.db

O incluso mejor...

var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/notepad');

var app = express();

app.locals.db = db;

app.get('/users', routes.userlist); // Access it using req.locals.db