Created
May 27, 2013 17:41
-
-
Save julrich/5658247 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
}); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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