-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.js
56 lines (56 loc) · 1.62 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import Koa from 'koa'
const app = new Koa()
import router from './src/router/index'
import koaBody from 'koa-body'
import koaCors from '@koa/cors'
import helmet from 'koa-helmet'
import koaJson from 'koa-json'
import statics from 'koa-static'
import compose from 'koa-compose'
import jwt from 'koa-jwt'
import path from 'path'
import compress from 'koa-compress'
import './src/config/MongoDB'
import './src/config/RedisConfig'
import errorHandler from './src/common/errorHandler'
import config from './src/config/index'
import WebSocket from '@/config/WebSocket'
import authMiddleWare from '@/common/authMiddleWare'
import { initAdmin } from '@/common/initAdmin'
import { httpLogger, appLogger } from '@/common/log4js'
const isDev = process.env.NODE_ENV !== 'production'
if (!isDev) { // 压缩中间件
app.use(compress())
}
const koaJwt = jwt({ secret: config.JWT_SECRET }).unless({ path: config.PUBLIC_PATH })
// 合并中间件
const middleWare = compose([
koaBody({
multipart: true,
formidable: {
keepExtensions: true, // 保留文件扩展名
maxFieldsSize: 5 * 1024 * 1024 // 最大文件上传大小
}
}),
koaCors(),
helmet(),
koaJson({ pretty: false, param: 'pretty' }),
statics(path.join(__dirname, '../public')),
errorHandler,
koaJwt,
authMiddleWare,
isDev
? httpLogger()
: appLogger()
])
app.use(middleWare)
.use(router())
// 开发环境下是docker镜像的12005端口
const port = isDev ? 3000 : 3000
app.listen(port, function () {
console.log('服务端运行在3000端口')
const socketServer = new WebSocket()
socketServer.init()
global.wss = socketServer
initAdmin()
})