demo源码
https://github.com/ChenShenhai/koa2-note/blob/master/demo/project/
├── init # 数据库初始化目录│ ├── index.js # 初始化入口文件│ ├── sql/ # sql脚本文件目录│ └── util/ # 工具操作目录├── package.json├── config.js # 配置文件├── server # 后端代码目录│ ├── app.js # 后端服务入口文件│ ├── codes/ # 提示语代码目录│ ├── controllers/ # 操作层目录│ ├── models/ # 数据模型model层目录│ ├── routers/ # 路由目录│ ├── services/ # 业务层目录│ ├── utils/ # 工具类目录│ └── views/ # 模板目录└── static # 前端静态代码目录├── build/ # webpack编译配置目录├── output/ # 编译后前端代码目录&静态资源前端访问目录└── src/ # 前端源代码目录
const path = require('path')const Koa = require('koa')const convert = require('koa-convert')const views = require('koa-views')const koaStatic = require('koa-static')const bodyParser = require('koa-bodyparser')const koaLogger = require('koa-logger')const session = require('koa-session-minimal')const MysqlStore = require('koa-mysql-session')const config = require('./../config')const routers = require('./routers/index')const app = new Koa()// session存储配置const sessionMysqlConfig= {user: config.database.USERNAME,password: config.database.PASSWORD,database: config.database.DATABASE,host: config.database.HOST,}// 配置session中间件app.use(session({key: 'USER_SID',store: new MysqlStore(sessionMysqlConfig)}))// 配置控制台日志中间件app.use(convert(koaLogger()))// 配置ctx.body解析中间件app.use(bodyParser())// 配置静态资源加载中间件app.use(convert(koaStatic(path.join(__dirname , './../static'))))// 配置服务端模板渲染引擎中间件app.use(views(path.join(__dirname, './views'), {extension: 'ejs'}))// 初始化路由中间件app.use(routers.routes()).use(routers.allowedMethods())// 监听启动端口app.listen( config.port )console.log(`the server is start at port ${config.port}`)