mirror of
https://github.com/HackPlan/RootPanel.git
synced 2026-01-13 07:01:20 +08:00
refactor app
This commit is contained in:
81
app.coffee
81
app.coffee
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
@@ -24,6 +24,11 @@
|
||||
p {
|
||||
text-align: right;
|
||||
margin-bottom: 2px;
|
||||
color: #fff;
|
||||
|
||||
a {
|
||||
color: #e1d3f7;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
41
package.json
41
package.json
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user