-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.coffee
70 lines (59 loc) · 1.7 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
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
# External imports
express = require('express')
app = require('express')()
Store = require('connect-mysql-session')(express)
# Internal imports
utils = require('./utils')
schema = require('./schema')
# App settings
app.set('views', './views/')
app.set('view engine', 'coffee')
app.set('view options', {layout:false, format:true})
app.set('dbhost', 'localhost')
app.set('dbname', 'roast')
app.set('dbuser', 'roast')
app.set('dbpass', 'Theansweris2442')
app.set('coffee price', '3')
app.set('milk price', '0.01')
# set the rendering engine
app.engine('.coffee', utils.coffeecupEngine)
app.use(express.cookieParser())
# setup the mysql session store
app.use(express.session({
secret:'randomCookieSecretPhrase',
store: new Store(app.set('dbname'), app.set('dbuser'), app.set('dbpass'), {
host:app.set('dbhost'),
logging: false
})
}))
app.use(express.bodyParser())
# host js/css/img locally
app.use(require('connect-assets')())
app.use(express.static(__dirname + '/public'))
app.use(app.router)
# setup and expose db tables
app.seq = schema.sequelize(app)
app.users = schema.users(app.seq)
app.coffees = schema.coffees(app.seq)
app.purchases = schema.purchases(app.seq)
app.payments = schema.payments(app.seq)
app.milk = schema.milk(app.seq)
app.seq.sync().success(() ->
schema.checkDBInit(app.users)
)
# Login and Registration routes
require('./routes/auth')(app)
# index routes
require('./routes/index')(app)
# Users resource route
require('./routes/users')(app)
# Purchases resource route
require('./routes/purchases')(app)
# Route for fetching partials
app.get('/partials/:item', (req, res, next) ->
res.render("partials/#{req.params.item}.coffee")
)
# Start the app
app.listen(80)
# Exports
module.exports = app