@@ -1,23 +1,18 @@ | |||
{ | |||
"name": "ruoyi", | |||
"version": "3.8.6", | |||
"description": "两制一化", | |||
"author": "融信", | |||
"description": "文件传输", | |||
"author": "农燊", | |||
"license": "MIT", | |||
"scripts": { | |||
"serve": "vue-cli-service serve", | |||
"install": "npm update && npm rebuild", | |||
"build": "vue-cli-service build", | |||
"start": "npm run start:local", | |||
"start:local": "DEBUG=* NODE_ENV=local-dev node --abort-on-uncaught-exception start.js --log-level=debug --mode=local-dev", | |||
"build:dev": "npm run build", | |||
"start:dev": "DEBUG=* NODE_ENV=development node --abort-on-uncaught-exception start.js --log-level=debug --mode=development", | |||
"build:test": "npm run build", | |||
"start:test": "DEBUG=* NODE_ENV=test node --abort-on-uncaught-exception start.js --log-level=debug --mode=test", | |||
"build:stage": "npm run build", | |||
"start:stage": "DEBUG=rongxin* NODE_ENV=stage node --abort-on-uncaught-exception start.js --log-level=debug --mode=stage", | |||
"build:prod": "npm run build", | |||
"start:prod": "DEBUG=rongxin* NODE_ENV=production node --abort-on-uncaught-exception start.js --log-level=debug --mode=production", | |||
"preview": "node build/index.js --preview", | |||
"lint": "eslint --ext .js,.vue src" | |||
}, | |||
@@ -59,8 +54,6 @@ | |||
"js-beautify": "1.13.0", | |||
"js-cookie": "3.0.1", | |||
"jsencrypt": "3.0.0-rc.1", | |||
"nongfu.merchant.bootstrap": "git+ssh://git@gitlab.cacfintech.com:racoon/nongfu.merchant.bootstrap.git#stable", | |||
"nongfu.merchant.policyrouter": "git+ssh://git@gitlab.cacfintech.com:racoon/nongfu.merchant.policyrouter.git#stable", | |||
"nprogress": "0.2.0", | |||
"quill": "1.3.7", | |||
"request": "^2.88.2", | |||
@@ -1,65 +0,0 @@ | |||
'use strict' | |||
/** | |||
* proxy api http request to rongxin.gov.rgvn.api service | |||
*/ | |||
const proxy = require('http-proxy-middleware') | |||
const config = require('config') | |||
const logFactory = require('../utils/logFactory') | |||
const logUtil = require('../utils/logUtil') | |||
const debug = logFactory(logUtil())('rongxin.gov.rgvn.dashboard.tiandeng:routes:apiProxy') | |||
class ApiProxy { | |||
constructor(policyRouter) { | |||
this._policyRouter = policyRouter | |||
} | |||
onProxyReq (proxyReq, req, res, options) { | |||
const method = 'proxyReq' | |||
debug(method, '[Proxy-Enter]', req.path) | |||
if (req.path.startsWith('/api')) { | |||
proxyReq.path = proxyReq.path.substring(4) | |||
debug(method, 'proxyReq.path: ', proxyReq.path, req.path) | |||
} | |||
} | |||
onProxyRes (proxyRes, req, res) { | |||
let method = "onProxyRes" | |||
debug('[Proxy-Exit]', req.path) | |||
debug('[onProxyRes] ', 'req.path = ', req.path, 'req.method = ', req.method) | |||
} | |||
onError (err, req, res) { | |||
let method = 'onError' | |||
debug.error(method, err) | |||
} | |||
init () { | |||
const self = this | |||
const govRgvnApiServiceUrl = `${config.get('rongxin_gov_rgvn_api_service').host}:${config.get('rongxin_gov_rgvn_api_service').port}`; | |||
const proxyInst = proxy({ | |||
target: govRgvnApiServiceUrl, | |||
router: { | |||
}, | |||
changeOrigin: true, | |||
logLevel: 'debug', | |||
logProvider: () => debug, | |||
onProxyRes: self.onProxyRes.bind(self), | |||
onProxyReq: self.onProxyReq.bind(self), | |||
onError: self.onError.bind(self) | |||
}) | |||
self._policyRouter.use('/api', proxyInst, { | |||
name: 'apiProxy.proxyInst' | |||
}); | |||
debug.info(`api proxy, api service uri: ${govRgvnApiServiceUrl}`) | |||
return self | |||
} | |||
} | |||
module.exports = ApiProxy |
@@ -1,36 +0,0 @@ | |||
/** | |||
* Http compression router | |||
* @author tala | |||
* 2018-05-23 | |||
*/ | |||
'use strict' | |||
const compression = require('compression') | |||
class HttpCompression { | |||
constructor(policyRouter) { | |||
this._policyRouter = policyRouter | |||
} | |||
init() { | |||
let self = this | |||
// compression | |||
self._policyRouter.use('/', compression({ | |||
filter: function(req, res) { | |||
if (req.headers['x-no-compression']) { | |||
// don't compress responses with this request header | |||
return false; | |||
} | |||
// fallback to standard filter function | |||
return compression.filter(req, res); | |||
} | |||
}), { | |||
name: 'httpCompression', | |||
}) | |||
return self | |||
} | |||
} | |||
module.exports = HttpCompression |
@@ -1,36 +0,0 @@ | |||
/** | |||
* routes | |||
* @author eriksen, tala | |||
*/ | |||
'use strict' | |||
const PolicyRouter = require('nongfu.merchant.policyrouter').PolicyRouter; | |||
const express = require('express') | |||
let router = express.Router() | |||
let policyRouter = new PolicyRouter(router) | |||
let HealthChecker = require('nongfu.merchant.policyrouter').HealthChecker; | |||
//========================= | |||
// HttpCompression Router | |||
//========================= | |||
let HttpCompression = require('./compression'); | |||
let httpCompression = new HttpCompression(policyRouter); | |||
httpCompression.init(); | |||
//========================= | |||
// API Proxy Router | |||
//========================= | |||
let ApiProxy = require('./apiProxy'); | |||
let apiProxy = new ApiProxy(policyRouter); | |||
apiProxy.init(); | |||
//========================= | |||
// Static Resource Router | |||
//========================= | |||
let StaticResourceProvider = require('./staticResourceProvider'); | |||
let staticResourceProvider = new StaticResourceProvider(policyRouter); | |||
staticResourceProvider.init(); | |||
module.exports = router; |
@@ -1,34 +0,0 @@ | |||
/** | |||
* static resource provider router | |||
* @author tala | |||
*/ | |||
'use strict' | |||
const express = require('express'); | |||
const path = require('path'); | |||
class StaticResourceProvider { | |||
constructor(policyRouter) { | |||
this._policyRouter = policyRouter | |||
} | |||
static get ONE_YEAR() { | |||
return 365 * 24 * 60 * 60 * 1000; | |||
} | |||
init() { | |||
let self = this | |||
self._policyRouter.use('/', express.static(path.join(__dirname, '../dist'), { | |||
maxAge: StaticResourceProvider.ONE_YEAR | |||
}), { | |||
name: 'static.dist' | |||
}); | |||
return self | |||
} | |||
} | |||
module.exports = StaticResourceProvider |
@@ -1,55 +0,0 @@ | |||
/** | |||
* rongxin.gov.rgvn.dashboard.tiandeng | |||
*/ | |||
'use strict' | |||
const logFactory = require('./utils/logFactory') | |||
const logUtil = require('./utils/logUtil') | |||
const debug = logFactory(logUtil())('rongxin.gov.rgvn.dashboard.tiandeng') | |||
const express = require('express') | |||
const http = require('http') | |||
const config = require('config') | |||
const env = require('./services/env') | |||
const program = require('commander') | |||
//==================== | |||
// program parser | |||
// ==================== | |||
program | |||
.version('1.0.0') | |||
.usage('[options] ') | |||
.option('-h, --hostname [hostname]', 'Hostname or IP address for the service to bind, if not presented, use the one specfied in conf file') | |||
.option('-p, --port [port]', 'The service listening port, if not presented, use the one specified in conf file') | |||
.option('-l, --log-level [log-level]', 'The service log-level') | |||
.option('-m, --mode [mode]', 'The service process mode, production, stage or test') | |||
.parse(process.argv) | |||
let transportConf = { | |||
host: program.hostname, | |||
port: program.port | |||
} | |||
const bootstrap = require('nongfu.merchant.bootstrap') | |||
const app = express() | |||
env.setServerMode(app.get('env')) | |||
const router = require('./routes') | |||
app.use('/', router) | |||
bootstrap.init((error, result) => { | |||
if (error) | |||
process.exit(1) | |||
let hostInEnv = process.env.NODE_HOSTNAME | |||
let portInEnv = process.env.NODE_PORT | |||
let host = hostInEnv || transportConf.host || config.get('server').host | |||
let port = portInEnv || transportConf.port || config.get('server').port | |||
let server = http.createServer(app) | |||
server.listen(port, host) | |||
debug.info(`Server start up on listening [host:${host}, port:${port}]`) | |||
}) |