1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- const Koa = require('koa');
- const { koaBody } = require('koa-body');
- const cors = require('koa2-cors');
- const koajwt = require('koa-jwt');
- const path = require('path');
- const { routerInstaller } = require('./utils/installer');
- const errorHandler = require('./error');
- const config = require('./config');
- const app = new Koa();
- app.use(
- cors({
- credentials: true,
- exposeHeaders: ['Content-Disposition'],
- }),
- );
- app.use(async (ctx, next) => {
- try {
- console.log("aap.js 中间件处理")
- console.log(ctx)
- await next();
- } catch (err) {
- if (err.name === 'UnauthorizedError') {
- ctx.body = {
- code: 10018,
- data: '',
- message: 'TOKEN 无效,请重新登录',
- };
- return;
- } else if (err.message.indexOf('options.maxFileSize') > -1) {
- ctx.body = {
- code: 102,
- data: '',
- message: '超出最大限制,文件最大为5M',
- };
- return;
- } else {
- ctx.body = {
- code: -1,
- data: '',
- message: err.message,
- };
- }
- }
- });
- app.use(
- koaBody({
- multipart: true,
- formidable: {
- uploadDir: path.join(__dirname, 'public/'),
- keepExtensions: true,
- allowEmptyFiles: false,
- maxFiles: 1,
- maxFileSize: 5 * 1024 * 1024,
- maxFields: 10,
- maxFieldsSize: 3 * 1024 * 1024,
- },
- }),
- );
- app.use(
- koajwt({ secret: config.JWT_SECRET }).unless({
- path: [
- /^\/api\/user\/ssoLogin/,
- /^\/api\/user\/login/,
- /^\/api\/user\/wechat/,
- /^\/api\/user\/sendEmail/,
- /^\/api\/user\/regist/,
- /^\/api\/user\/password/,
- /^\/api\/admin\/page\/detail/,
- /^\/api\/ai\/proxy/,
- /^\/api\/firefly/,
- ],
- }),
- );
- routerInstaller(app);
- app.on('error', errorHandler);
- module.exports = app;
|