refactor app

This commit is contained in:
jysperm
2014-08-19 12:48:16 +08:00
parent b97e160540
commit 7aa2a7e38c
6 changed files with 106 additions and 116 deletions

View File

@@ -1,3 +1,80 @@
core = require './core'
connect = require 'connect'
path = require 'path'
harp = require 'harp'
fs = require 'fs'
moment = require 'moment'
mongomin = require 'mongo-min'
redis = require 'redis'
core.runWebServer()
global._ = require 'underscore'
global.ObjectID = require('mongodb').ObjectID
global.express = require 'express'
global.async = require 'async'
global.app = express()
global.config = require './config'
global.i18n = require './core/i18n'
global.utils = require './core/router/utils'
if fs.existsSync(config.web.listen)
fs.unlinkSync config.web.listen
bindRouters = (app) ->
app.use require 'middleware-injector'
app.use '/', require './core/router/index'
for module_name in ['account', 'admin', 'panel', 'plan', 'ticket', 'wiki', 'bitcoin']
app.use "/#{module_name}", require './core/router/' + module_name
plugin = require './core/plugin'
plugin.loadPlugins app
exports.connectDatabase = (callback) ->
{user, password, host, name} = config.mongodb
mongomin "mongodb://#{user}:#{password}@#{host}/#{name}", (err, db) ->
app.db = db
app.redis = redis.createClient 6379, '127.0.0.1',
auth_pass: config.redis_password
callback err
exports.runWebServer = ->
exports.connectDatabase (err) ->
throw err if err
i18n.init
default_language: 'zh_CN'
available_language: ['zh_CN']
i18n.load path.join(__dirname, 'core/locale')
app.package = require './package.json'
app.use connect.json()
app.use connect.urlencoded()
app.use connect.cookieParser()
app.use connect.logger('dev')
moment.locale 'zh_CN'
app.use (req, res, next) ->
res.locals.app = app
res.locals.moment = moment
res.locals.t = i18n.getTranslator 'zh_CN'
res.locals.mAccount = require './core/model/account'
next()
app.set 'views', path.join(__dirname, 'core/view')
app.set 'view engine', 'jade'
bindRouters app
app.use harp.mount(path.join(__dirname, 'core/static'))
app.listen config.web.listen
unless module.parent
exports.runWebServer()

View File

@@ -1,87 +0,0 @@
connect = require 'connect'
path = require 'path'
harp = require 'harp'
fs = require 'fs'
moment = require 'moment'
mongomin = require 'mongo-min'
redis = require 'redis'
global._ = require 'underscore'
global.ObjectID = require('mongodb').ObjectID
global.express = require 'express'
global.async = require 'async'
global.app = express()
global.config = require './../config'
global.i18n = require './i18n'
global.utils = require './router/utils'
if fs.existsSync(config.web.listen)
fs.unlinkSync config.web.listen
bindRouters = (app) ->
app.use require 'middleware-injector'
app.use '/', require './router/index'
app.use '/account', require './router/account'
app.use '/admin', require './router/admin'
app.use '/panel', require './router/panel'
app.use '/plan', require './router/plan'
app.use '/ticket', require './router/ticket'
app.use '/wiki', require './router/wiki'
app.use '/bitcoin', require './router/bitcoin'
plugin = require './plugin'
plugin.loadPlugins app
exports.connectDatabase = (callback) ->
if global.app?.db
return callback null, app.db
app.redis = redis.createClient 6379, '127.0.0.1',
auth_pass: config.redis_password
{user, password, host, name} = config.mongodb
mongomin "mongodb://#{user}:#{password}@#{host}/#{name}", (err, db) ->
global.app ?= {}
app.db = db
callback err, db
exports.runWebServer = ->
exports.connectDatabase (err) ->
throw err if err
i18n.init
default_language: 'zh_CN'
available_language: ['zh_CN']
i18n.load path.join(__dirname, 'locale')
app.package = require '../package.json'
app.use connect.json()
app.use connect.urlencoded()
app.use connect.cookieParser()
app.use connect.logger('dev')
moment.locale 'zh_CN'
app.use (req, res, next) ->
res.locals.app = app
res.locals.moment = moment
res.locals.t = i18n.getTranslator 'zh_CN'
res.locals.mAccount = require './model/account'
next()
app.set 'views', path.join(__dirname, 'view')
app.set 'view engine', 'jade'
bindRouters app
app.use harp.mount(path.join(__dirname, 'static'))
app.listen config.web.listen
unless module.parent
exports.runWebServer()

View File

@@ -24,6 +24,11 @@
p {
text-align: right;
margin-bottom: 2px;
color: #fff;
a {
color: #e1d3f7;
}
}
}

View File

@@ -63,9 +63,9 @@ block content
a(href= 'https://github.com/jysperm/RootPanel') RootPanel
|   v#{app.package.version}
p
| by  
a(href= 'http://jysperm.me') jysperm
| , yudong
for author in app.package.contributors
| by  
a(href= author.url)= author.name
#site-not-exist.modal
.modal-dialog

View File

@@ -13,11 +13,6 @@
"name": "jysperm",
"email": "jysperm@gmail.com",
"url": "http://jysperm.me"
},
{
"name": "yudong",
"email": "liyudonog1992@gmail.com",
"url": "http://feicunyue.com"
}
],
"scripts": {
@@ -31,23 +26,23 @@
"rp-clean": "./bin/rp-clean.coffee"
},
"dependencies": {
"jade": "^1.3",
"express": "*",
"coffee-script": "*",
"mongodb": "*",
"underscore": "*",
"forever": "*",
"markdown": "*",
"async": "*",
"connect": "~2.17.1",
"harp": "*",
"middleware-injector": "*",
"tmp": "*",
"mysql": "*",
"moment": "*",
"request": "*",
"mongo-min": "*",
"redis": "*",
"nodemailer": "~0.7.0"
"jade": "~1.3",
"express": "~4.8.4",
"coffee-script": "~1.7.1",
"mongodb": "~1.4.8",
"underscore": "~1.6.0",
"forever": "~0.11.1",
"markdown": "~0.5.0",
"async": "~0.9.0",
"connect": "~2.17.3",
"harp": "~0.13.0",
"middleware-injector": "~0.1.1",
"tmp": "~0.0.24",
"mysql": "~2.4.2",
"moment": "~2.8.1",
"request": "~2.40.0",
"mongo-min": "~0.2.2",
"redis": "~0.12.1",
"nodemailer": "~0.7.1"
}
}

View File

@@ -1,2 +1,2 @@
require('coffee-script/register');
require('./app.coffee');
require('./app.coffee').runWebServer();