alpha-one
Version:
ideas about recurring tasks in Web- and Backend-Application building
181 lines (116 loc) • 4.02 kB
JavaScript
// Generated by CoffeeScript 1.7.1
(function() {
var A1, OPTIONS, RedisStore, TRM, TYPES, alert, app, app_info, app_key, badge, days, debug, echo, express, express_options, help, hours, info, log, milliseconds, minutes, months, njs_path, redis_options, restrict_view, rpr, seconds, server_options, templates, view, warn, weeks, whisper, years;
njs_path = require('path');
OPTIONS = require('coffeenode-options');
TYPES = require('coffeenode-types');
TRM = require('coffeenode-trm');
rpr = TRM.rpr.bind(TRM);
badge = 'α1/main';
log = TRM.get_logger('plain', badge);
info = TRM.get_logger('info', badge);
whisper = TRM.get_logger('whisper', badge);
alert = TRM.get_logger('alert', badge);
debug = TRM.get_logger('debug', badge);
warn = TRM.get_logger('warn', badge);
help = TRM.get_logger('help', badge);
echo = TRM.echo.bind(TRM);
templates = require('./templates');
express = require('express');
RedisStore = (require('connect-redis'))(express);
app_info = OPTIONS.get_app_info();
/* Name used to store info on the `request` object: */
app_key = app_info['name'];
A1 = require('./main');
view = A1.get_view_for(templates);
restrict_view = A1.get_restrict_view_for(templates);
milliseconds = 1;
seconds = 1000 * milliseconds;
minutes = 60 * seconds;
hours = 60 * minutes;
days = 24 * hours;
weeks = 7 * days;
months = 30 * days;
years = 365 * days;
server_options = {
'host': '127.0.0.1',
'port': 80
};
express_options = {
'static-routes': ['public', 'common'],
'logger': {
'format': 'dev'
}
};
redis_options = {
'host': '127.0.0.1',
'port': 6379
};
express_options['redis'] = redis_options;
express_options['session'] = {
'secret': 'verysecretindeed',
'store': new RedisStore({
host: redis_options['host'],
port: redis_options['port'],
ttl: 2 * weeks
}),
'cookie': {
maxAge: 2 * weeks
}
};
(require('./validate-redis-is-running'))(redis_options);
app = express();
app.use(A1.get_request_counter());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.cookieParser('ztfgGHzqk3'));
app.use(express.session(express_options['session']));
app.use(A1.add_request_options());
app.use(A1.flash_notifications());
app.use(express.logger(express_options['logger']['format']));
(function() {
var fs_route, static_route, _i, _len, _ref, _results;
_ref = express_options['static-routes'];
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
static_route = _ref[_i];
static_route = '/'.concat(njs_path.basename(static_route));
fs_route = njs_path.join(app_info['home'], static_route);
app.use(static_route, express["static"](fs_route));
_results.push(info("static route:", TRM.gold(static_route), TRM.grey('->', fs_route)));
}
return _results;
})();
app.use(A1.show_sid(express_options['session']['secret']));
app.all('*', A1.show_debug_info());
app.get('/', view('homepage'));
app.get('/contact', view('contact'));
app.get('/imprint', view('imprint'));
app.get('/privacy', view('privacy'));
app.get('/welcome', view('welcome', {
'remember-location': false
}));
app.get('/goodbye', view('goodbye', {
'remember-location': false
}));
app.get('/login', view('login_get', {
'remember-location': false
}));
app.post('/login', view('login_post', {
'remember-location': false
}));
app.post('/signup', view('signup_post', {
'remember-location': false
}));
app.all('/logout', view('logout', {
'remember-location': false
}));
app.get('/restricted', restrict_view('user', 'restricted'));
app.use(view('not_found'));
app.listen(server_options['port'], function(error) {
if (error != null) {
throw error;
}
return log(TRM.green("listening to " + server_options['host'] + ":" + server_options['port']));
});
}).call(this);