forked from ot-crew/ot-crew.github.io
/
app.js
80 lines (69 loc) · 2.19 KB
/
app.js
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
/*------------------------------------*\
Deps
\*------------------------------------*/
var express = require( 'express' )
, stylus = require( 'stylus' )
, nib = require( 'nib' )
, gravatar = require( 'gravatar' )
, app = module.exports = express.createServer()
, defaultImage = '/images/batman-for-facebook.jpg'
, crew = JSON.parse( require( 'fs' ).readFileSync( __dirname + '/public/crew.json' ) ).sort( function( a, b ) {
var a = a.name.toLowerCase()
, b = b.name.toLowerCase()
return ( a < b )
? -1
: ( a > b )
? 1
: 0
})
/*------------------------------------*\
INIT
\*------------------------------------*/
function compile_stylus ( str, path ) {
return stylus( str )
.set( 'filename', path )
.set( 'compress', true )
.use( nib() )
}
function photoFor ( user ) {
if ( user.email )
return gravatar.url( user.email, { r: 'x', s: '300', d: 'http://ot-crew.com' + defaultImage } )
else if ( user.imgUrl )
return user.imgUrl
else
return defaultImage
}
/*------------------------------------*\
Config
\*------------------------------------*/
app.configure( function(){
app.set( 'views', __dirname + '/views' )
app.set( 'view engine', 'jade' )
app.use( express.bodyParser() )
app.use( express.methodOverride() )
app.use( stylus.middleware({ src: __dirname + '/public', compile: compile_stylus }) )
app.use( app.router )
app.use( express.static( __dirname + '/public' ) )
})
app.configure( 'development', function(){
app.use( express.logger( '[:date] :method :url -> :status (:response-time)' ) )
app.use( express.errorHandler({ dumpExceptions: true, showStack: true }) )
})
app.configure( 'production', function(){
app.use( express.errorHandler() )
})
/*------------------------------------*\
Routes
\*------------------------------------*/
app.get( '/', function( req, res ) {
res.render( 'index',
{ title: '-ot crew'
, crew: crew
, photo_for: photoFor
})
})
/*------------------------------------*\
Listen!
\*------------------------------------*/
if ( ! module.parent )
app.listen( 3000 ) && console.log( "Express server listening on port %d", app.address().port )