2 Star 5 Fork 1

水痕/koa2-cli

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
app.js 2.70 KB
一键复制 编辑 原始数据 按行查看 历史
水痕 提交于 2021-10-07 23:58 . first commit
/*
* @Author: zzh
* @Date: 2021-08-17
* @FilePath: \service\app.js
*/
import path from 'path'
import Koa from 'koa'
const app = new Koa()
import views from 'koa-views'
import json from 'koa-json'
import onerror from 'koa-onerror'
import compress from 'koa-compress' //压缩
import koaBody from 'koa-body'
import logger from 'koa-logger'
import koaJwt from 'koa-jwt' //路由权限控制
import cors from 'koa2-cors'
import {
accessLogger,
appLogger
} from './logger'
// const Redis = require('./utils/redis');
// import sequelize from '@/database/sequelize'
import Conf from './config'
import responseFormat from './middleware/format_response'
import project from './app/index'
// global.redis = new Redis(); // 将redis挂载到全局,使用的时候可以直接redis.set,redis.get,redis.delete
/* redis 使用demo */
// redis.set('myname','fff',1) //改值的过期时间为1天,超过访问返回null,不设过期天数走redis的过期策略
// console.log(await redis.get('myname'));
// redis.delete('myname');
app.use(cors()); // cors跨域注册
// error handler
onerror(app)
// compress data
app.use(compress({
filter: function(content_type) { //只有在请求的content-type中有gzip类型,我们才会考虑压缩,因为zlib是压缩成gzip类型的
return /(text)|(js)/i.test(content_type);
},
threshold: Conf.compress.threshold, //阀值,当数据超过2kb的时候,可以压缩
flush: require('zlib').constants.Z_SYNC_FLUSH
}));
//是否启用gzip压缩
app.use(async(ctx, next) => {
ctx.compress = Conf.compress.isCompress; //是否压缩数据
await next();
});
app.use(json())
app.use(logger())
app.use(koaBody({
multipart: true,
formidable: {
keepExtensions: Conf.multipart.keepExtensions, // 保留文件扩展名
maxFileSize: Conf.multipart.maxFileSize // 设置上传文件大小最大限制,默认2M
}
}));
app.use(require('koa-static')(__dirname + '/public'))
app.use(responseFormat) //响应数据格式化返回
//秘钥
app.use(koaJwt({
secret: Conf.jwt.jwtSecret,
// passthrough: true
}).unless({
path: Conf.jwt.rule
}))
app.use(views(__dirname + '/views', {
extension: 'pug'
}))
app.use(accessLogger())
// logger
// app.use(async (ctx, next) => {
// const start = new Date()
// await next()
// const ms = new Date() - start
// console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
// })
// routes
// 路由注册
app.use(project.routes(), project.allowedMethods())
// error-handling
app.on('error', (err, ctx) => {
console.error('server error', err, ctx)
//开发环境才记录日志
if (process.env.NODE_ENV !== 'dev') {
appLogger.error(err)
}
});
module.exports = app
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zangzhihong/koa2-cli.git
git@gitee.com:zangzhihong/koa2-cli.git
zangzhihong
koa2-cli
koa2-cli
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385