-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.coffee
118 lines (99 loc) · 2.89 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
App = (connectedUser) ->
express = require 'express'
app = express()
require './bootstrap'
config = require 'config'
path = require 'path'
i18n = require 'i18n'
locale = require 'locale'
passport = require 'passport'
flash = require 'connect-flash'
RedisStore = require('connect-redis')(express)
require './passport-bootstrap'
i18n.configure
locales: config.languages
directory: __dirname + "/locales"
app.use(locale(config.languages))
appMiddlewares = require './app-middlewares'
publicPathes = [
'/',
'/login',
'/signup',
'/signupConfirmation',
'/signup/validation',
'/signupValidation',
'/request/reset/password',
'/reset/password',
'/auth/facebook',
'/auth/facebook/callback',
'/guide',
'/contact',
'/contact/confirmation',
'/logout'
]
app.configure ->
app.set "port", process.env.PORT or 3000
app.set "views", __dirname + "/views"
app.set "view engine", "jade"
app.use express.favicon()
app.configure "development", ->
app.use express.logger("dev")
app.configure "production", ->
app.use express.logger()
app.configure ->
app.use require("less-middleware")(src: __dirname + "/public")
app.use express.static(path.join(__dirname, "public"))
app.use express.static(path.join(__dirname, "uploads"))
app.use express.cookieParser()
# app.use express.limit('4M')
app.use express.bodyParser
keepExtensions: true
uploadDir: __dirname + '/uploads'
app.use express.session({ store: new RedisStore(config.Redis), secret: "keyboard cat" })
if connectedUser
passportMock = require './passport-mock'
app.use passportMock.initialize connectedUser
else
app.use passport.initialize()
app.use passport.session()
app.use appMiddlewares.checkAuthentication(publicPathes, '/login')
app.use appMiddlewares.setLocale(config.languages)
app.locals
__i: i18n.__
__n: i18n.__n
navbar: config.navbar
app.use express.methodOverride()
app.use flash()
app.use app.router
app.configure "development", ->
app.use express.errorHandler(
dumpExceptions: true
showStack: true
)
app.configure "production", ->
app.use express.errorHandler()
#
#* Error Handling
#
app.use (req, res, next) ->
res.status 404
if req.accepts("html")
res.render "error/404",
url: req.url
return
if req.accepts("json")
res.send error: "Not found"
return
res.type("txt").send "Not found"
app.use (err, req, res, next) ->
res.status err.status or 500
res.render "error/500",
error: err
require("./routes") app
return app
if module.parent is null
app = new App()
require('http').createServer(app).listen app.get("port"), ->
console.log "Express server listening on port " + app.get("port")
else
module.exports = App