app.js
1.01 KB
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
const Koa = require('koa');
const Promise = require('bluebird');
const Redis = require('ioredis');
const bodyParser = require('koa-bodyparser');
const config = require('config');
const mysql = require('mysql');
const pool = mysql.createPool(config.get('dbConfig'));
const redis = new Redis(config.get('cacheConfig'));
const utils = require('./utils/utils');
const routes = require('./controller');
const { logger } = utils;
const app = new Koa();
app.use(
bodyParser({
enableTypes: ['json', 'form', 'text'],
extendTypes: {
text: ['text/xml', 'application/xml']
}
})
);
app.use(async (ctx, next) => {
ctx.pool = Promise.promisifyAll(pool);
ctx.redis = redis;
try {
await next();
} catch (e) {
logger.error(`【服务器出错】:${JSON.stringify(e.message)}`);
ctx.status = 500;
ctx.body = '服务器出错';
}
});
routes.forEach(route => {
app.use(route.routes()).use(route.allowedMethods());
});
app.listen(config.get('port'), () => {
logger.info('server is running!');
});