Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FeipingHunag/1111096 to your computer and use it in GitHub Desktop.
Save FeipingHunag/1111096 to your computer and use it in GitHub Desktop.
trying to DRY up my code
// 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)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment