59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
var config = require('./config')
|
|
, express = require("express")
|
|
, expressLogging = require("express-logging")
|
|
, logger = require("logops")
|
|
, port = 32104
|
|
, HttpStatus = require('http-status-codes')
|
|
, controllers = {};
|
|
|
|
fs = require('fs'),
|
|
request = require('request');
|
|
|
|
|
|
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
|
|
|
|
/**
|
|
* Express web server starting
|
|
*
|
|
*/
|
|
logger.getContext = function getContext() {
|
|
return {
|
|
// hostname: hostname,
|
|
// pid: process.pid,
|
|
// port: port
|
|
app: 'Image'
|
|
};
|
|
}
|
|
var app = express();
|
|
app.use(express.json());
|
|
app.use(expressLogging(logger));
|
|
app.use((req, res, next) => {
|
|
logger.debug(Object.assign(req.body, req.query, req.params), 'Request params')
|
|
next()
|
|
})
|
|
app.listen(port, () => {
|
|
logger.info({ app: 'Spider Service' }, 'Startup');
|
|
});
|
|
|
|
|
|
/**
|
|
* Request handlers
|
|
*
|
|
*/
|
|
app.all('*', (req, res, next) => {
|
|
let urlSegments = req.url.split('/');
|
|
req.params.service = urlSegments[1]
|
|
req.params.what = urlSegments.length > 2 ? urlSegments[2] : ''
|
|
req.params.args = urlSegments.length > 3 ? urlSegments.slice(3) : []
|
|
|
|
if (!controllers.hasOwnProperty(req.params.service)) {
|
|
let controller = req.params.service.charAt(0).toUpperCase() + req.params.service.slice(1) + 'Controller';
|
|
controllers[req.params.service] = require('./src/controller/' + controller)
|
|
logger.info('%s has been loaded', controller)
|
|
}
|
|
controllers[req.params.service][req.params.service](req, result => {
|
|
let body = { code: HttpStatus.OK, message: HttpStatus.getStatusText(HttpStatus.OK), data: result }
|
|
if (result.code) body = result
|
|
res.json(body)
|
|
})
|
|
}) |