-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebServer.coffee
71 lines (59 loc) · 2.4 KB
/
webServer.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
### ------- Module dependencies. ------------ ###
express = require 'express'
cluster = require 'cluster'
engine = require 'ejs-locals'
http = require 'http'
log4js = require 'crafity-log4js'
sequelize = require 'sequelize'
async = require 'async'
app = express()
### ------- Class --------------------------- ###
appOption = require './config/test_option.json'
AppClass = require './routes/System/AppClass'
LogClass = require './routes/System/LogClass'
appConfig = new AppClass.AppClass()
logConfig = new LogClass.LogClass()
node_modules = {}
node_modules.express = express
node_modules.cluster = cluster
node_modules.engine = engine
node_modules.http = http
node_modules.log4js = log4js
node_modules.sequelize = sequelize
node_modules.async = async
node_modules.appClass = appConfig
### ------- middleware ------------------------ ###
app.configure ->
app.set 'port', appConfig.getPort()
app.set 'views', appConfig.getView()
app.engine 'ejs', engine
app.set 'view engine', appConfig.getEngine()
app.use express.favicon(appConfig.getFavicon())
# log -----------------------
logger = log4js.getLogger('file')
log4js.configure(logConfig.settings)
app.use log4js.connectLogger(logger, logConfig.connect())
app.use express.compress(appConfig.compress) # 応答データの圧縮
app.use express.bodyParser(appConfig.upload()) # upload / postのリクエスト処理
app.use express.methodOverride()
app.use express.static appConfig.getPublic()
return console.log "app opption setup."
### ------- create httpServer.----------------- ###
# masterサーバの設定(clusterを使ってプロセスをフォークする場合
if (cluster.isMaster)
server = http.createServer(app)
# database setup
database_root = "./database/database"
database = require(database_root)(config : appOption, node_modules : node_modules)
# server setup
# serverを立ち上げたことにcontrollerを立ち上げる
server.listen app.get('port'), ->
console.log "Master Server listening on #{app.get('port')}"
# controller setup
controller = "#{__dirname}/routes/controller"
require(controller)(app : app, database : database, node_modules : node_modules)
### ------- Error. ----------------------------------------- ###
# nodeがERRによって突然死しないようにする
process.on 'uncaughtException', (err) ->
console.log "err > #{err}"
console.error "uncaughtException > #{err.stack}"