public
Last active

trying to DRY up my code

  • Download Gist
nodejs_express_mongodb.js
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
// database.js
sys = require('sys');
 
var mongo = require('./lib/node-mongodb-native/lib/mongodb'),
Connection = mongo.Connection,
Server = mongo.Server,
BSON = mongo.BSONNative;
var host = process.env['MONGO_NODE_DRIVER_HOST'] != null ? process.env['MONGO_NODE_DRIVER_HOST'] : 'localhost';
var port = process.env['MONGO_NODE_DRIVER_PORT'] != null ? process.env['MONGO_NODE_DRIVER_PORT'] : Connection.DEFAULT_PORT;
 
sys.puts("Connecting to database at " + host + ":" + port);
 
var db = new mongo.Db('node-test', new Server(host, port, {}), {native_parser:true});
// didn't have the next line originally
db.open(function(){});
 
db.addListener("error", function(error) {
console.log("Error connecting to mongo -- perhaps it isn't running?");
});
 
module.exports = db;
 
 
// middleware/testMiddle.js
db = require('../database');
module.exports = function(){
return function(req,res,next){
// don't open connections on every request
// db.open(function(err,db){
res.myvar = typeof(db);
next();
// });
}
}
 
 
// app.js
sys = require('sys');
var foo = require('./middleware/testMiddle');
var express = require('express');
var app = module.exports = express.createServer();
 
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyDecoder());
app.use(express.methodOverride());
app.use(express.cookieDecoder());
app.use(express.compiler({ src: __dirname + '/public', enable: ['sass'] }));
app.use(app.router);
app.use(express.staticProvider(__dirname + '/public'));
});
 
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
 
app.configure('production', function(){
app.use(express.errorHandler());
});
 
// Routes
 
app.get('/', foo(), function(req, res){
res.render('index', {
locals: {
title: 'Test Page',
myvar: res.myvar
}
});
});
 
// Only listen on $ node app.js
 
if (!module.parent) {
app.listen(3000);
console.log("Express server listening on port %d", app.address().port)
}

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.