Skip to content

Instantly share code, notes, and snippets.

@julrich
Created May 27, 2013 17:41
Show Gist options
  • Save julrich/5658247 to your computer and use it in GitHub Desktop.
Save julrich/5658247 to your computer and use it in GitHub Desktop.
var derby = require('derby');
var app = derby.createApp(module);
var get = app.get;
var view = app.view;
var ready = app.ready;
// ROUTES //
get('/projects', function (page, model, params) {
var projectsQuery = model.query('projects').withUrl();
model.subscribe(projectsQuery, function (err, projectsName) {
console.log('projectsName.get()', projectsName.get());
page.render();
});
});
var http = require('http');
var path = require('path');
var express = require('express');
var gzippo = require('gzippo');
var derby = require('derby');
var app = require('../app');
var serverError = require('./serverError');
// SERVER CONFIGURATION //
var expressApp = express();
var server = module.exports = http.createServer(expressApp);
derby.use(derby.logPlugin);
var store = derby.createStore({listen: server});
store.query.expose('projects', 'withUrl', function () {
return this.where('url').exists();
});
var ONE_YEAR = 1000 * 60 * 60 * 24 * 365;
var root = path.dirname(path.dirname(__dirname));
var publicPath = path.join(root, 'public');
expressApp
.use(express.favicon())
// Gzip static files and serve from memory
.use(gzippo.staticGzip(publicPath, {maxAge: ONE_YEAR}))
// Gzip dynamically rendered content
.use(express.compress())
// Uncomment to add form data parsing support
// .use(express.bodyParser())
// .use(express.methodOverride())
// Uncomment and supply secret to add Derby session handling
// Derby session middleware creates req.model and subscribes to _session
// .use(express.cookieParser())
// .use(store.sessionMiddleware({
// secret: process.env.SESSION_SECRET || 'YOUR SECRET HERE'
// , cookie: {maxAge: ONE_YEAR}
// }))
// Adds req.getModel method
.use(store.modelMiddleware())
.use(function (req, res, next) {
var model = req.getModel();
model.set('projects', [
{ key: 'KEY1', name: 'Name1', url: 'http://example.com/1' },
{ key: 'KEY2', name: 'Name2', url: 'http://example.com/2' },
{ key: 'KEY3', name: 'Name3', url: '' },
{ key: 'KEY4', name: 'Name4' }
], function () {
next();
});
})
// Creates an express middleware from the app's routes
.use(app.router())
.use(expressApp.router)
.use(serverError(root));
// SERVER ONLY ROUTES //
expressApp.all('*', function(req) {
throw '404: ' + req.url;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment