123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import Koa = require('koa');
- import Router = require('@koa/router');
- // 美化控制台
- import consola = require('consola');
- // 解析post的body体
- import bodyParser = require('koa-bodyparser');
- // 部分安全相关
- import helmet = require('koa-helmet');
- import controllers = require('./controllers');
- import config = require('./config');
- import redisMiddleware = require('./middlewares/redis');
- import limitMiddleware = require('./middlewares/limit');
- import logsMiddleware = require('./middlewares/logs');
- import responseMiddleware = require('./middlewares/response');
- const app = new Koa();
- // app.proxy = true;
- /* 中间件 */
- // 安全防护
- app.use(helmet());
- // post params解析
- app.use(bodyParser());
- // 日志
- app.use(logsMiddleware());
- // redis
- app.use(redisMiddleware());
- // 限流
- app.use(limitMiddleware());
- // 返回体格式
- app.use(responseMiddleware());
- app.on('error', (err, ctx) => {
- ctx.$response(err, 'error', false);
- });
- // api 路由
- const apiRouter = new Router();
- apiRouter.get('/code', controllers.code);
- // 主路由
- const router = new Router();
- router.get('/', controllers.home);
- // api路由以/api前缀
- router.use('/api', apiRouter.routes(), apiRouter.allowedMethods());
- app.use(router.routes()).use(router.allowedMethods());
- const port = config.port;
- app.listen(port, () => {
- consola.success(`server is started at: http://localhost:${port}`)
- });
|