-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.coffee
37 lines (30 loc) · 1.09 KB
/
app.coffee
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
express = require 'express'
nconf = require 'nconf'
nconf.argv().env().file({ file: 'config/local.json' })
hbs = require 'express-hbs'
Resource = require 'express-resource'
Room = require './app/models/room'
require('./app/views/helpers')()
@app = express()
module.exports = @app
@app.engine('hbs', hbs.express3({
defaultLayout: 'app/views/layouts/application'
helpers: {
downcase: (str) -> str.toLowerCase()
upcase: (str) -> str.toUpperCase()
mixpanelToken: -> nconf.get('mixpanel_token')
}
}))
@app.set('views', __dirname + '/app/views/')
@app.set('view engine', 'hbs')
@app.use(express.static(__dirname + '/public'))
@app.resource('rooms', require('./app/controllers/rooms'), { load: Room.load })
@app.get '/', (req, res) -> res.redirect('/rooms')
@app.get '/rooms/:building/:room/:day?', (req, res) ->
path = "/rooms/#{req.params.building}#{req.params.room}"
path += "?day=#{req.params.day}" if req.params.day?
res.redirect(path)
unless module.parent?
port = process.env.PORT || nconf.get('server').port
@app.listen(port)
console.log("Roomular started on port #{port}.")