-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.coffee
94 lines (80 loc) · 2.35 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
#### js2coffee version 0.3.0
timerStr = 'blog程序启动用时'
console.time timerStr
#### ---- app.js
path = require("path")
express = require("express")
morgan = require("morgan")
bodyParser = require("body-parser")
cookieParser = require("cookie-parser")
compress = require("compression")
# 文件上传
multer = require("multer")
# coffee 缓存
require('coffee-cache')
config = require("./config")
routeRules = require("./backend/route")
logger = require("./backend/base/log")
render = require("./backend/pageController/render")
app = express()
logger.info(config.photoLib)
logger.info(config.uploadTmp)
# 使用ejs解析引擎
app.set "view engine", "jade"
# 视图文件都在/views
app.set "views", path.join(__dirname, "views")
# ~使用压缩~ 换用nginx的压缩服务
# Respense Header:
# Content-Encoding:gzip
# compress() should have been included **Before** the static file server
# app.use( compress() );
# morgan log出所有的http请求
app.use morgan("dev") if config.env is "dev"
# 参数解析, 文件上传
app.use bodyParser()
app.use multer(dest: config.uploadTmp)
# cookie 解析
app.use cookieParser()
# 默认的js css等静态资源根目录
# ~添加缓存控制~ maxAge会导致浏览器不发出检查变更的请求,不添加该resHead
# var cacheTime = 7*24*60*60*1000;
# app.use( express.static( __dirname + '/public', { maxAge: cacheTime}) ) ;
app.use express.static(__dirname + "/public")
routeRules.bind app
#if( config.env === 'dev' ){
# error handler by express
app.use (err, req, res, next) ->
if err
logger.error err
if req.path.indexOf("/app") is 0
res.json
code: err.code or "500"
msg: err
else
render[500]( res, {
message: err.message,
error: err
} );
# res.redirect "/#{err.code or '500'}"
else
next()
return
#}
#else if( config.env === 'pro' ){
# app.use(function(err, req, res, next) {
# res.status(err.status || 500);
# render[500]( res, {
# message: err.message,
# error: {}
# });
# });
#}
app.listen config.port, () ->
logger.info "app is listeing @ : " + config.port
console.timeEnd timerStr
# stack = app._router.stack
# countArr = [0..app._router.stack.length-1]
# for n in countArr
# logger.info stack[n]
# logger.info stack[n].route?.path
# logger.info stack[n].handle.name