工程实践
服务器文件结构
app.js 入口 api Controller admin 用户的增删改查 admin.controller.js admin.js category.controller.js laboratory.controller.js post.controller.js tag.controller.js oauth github认证相关 github.controller.js index.js
app.js 入口 api Controller admin 用户的增删改查 admin.controller.js admin.js category.controller.js laboratory.controller.js post.controller.js tag.controller.js oauth github认证相关 github.controller.js index.js
//app.js
const session = require('koa-session2');
const http = require('http');
const fs = require('fs');
const path = require('path');
// 对koa的二次封装,涉及路由拦截,jwt认证等
const app = require('./config/koa');
// 基本配置参数
const config = require('./config/environment');
// mysql
const query = require('./util/mysql-async');
//redis
const Store = require('./util/redis-store');
//socket
const draftSocket = require('./util/draft-socketio');\
//redis连接mysql
const redisMysql = require('./util/redis-mysql');
//redis初始化
app.use(session({
store: new Store(config.db.redis),
ttl: 2 * 60 * 60 * 1000
}));
// 是否允许跨域
app.use(async (ctx, next) => {
ctx.execSql = query;
ctx.set('Access-Control-Allow-Origin', config.accessControlAllowOrigin);
await next();
});
// routes
fs.readdirSync(path.join(__dirname, 'routes')).forEach(function (file) {
if (~file.indexOf('.js')) {
app.use(require(path.join(__dirname, 'routes', file)).routes());
}
});
//开启服务器
const server = http.createServer(app.callback())
.listen(config.port)
.on('listening', function () {
console.log('server listening on: ' + config.port);
});
// 初始化websocket
draftSocket.initSocket(server);
// 初始化定时任务
redisMysql.redisToMysqlTask();
暂无评论
确认操作
请再次确认编辑图片
待上传图片 (剩余 0 张)
项目详情
确认评论邮箱
邀请制评论