-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserver.ts
39 lines (37 loc) · 1.2 KB
/
server.ts
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
import { operatorRouter } from './routes/operatorRoute';
import { recruitRouter } from './routes/recruitRoute';
import { searchRouter } from './routes/searchRoute';
import { skinRouter } from './routes/skinRoute';
import { defaultRouter } from './routes/defaultRoute';
import { adminRouter } from './routes/adminRoute';
import { neuralConnect } from './models/connect';
import fastify from 'fastify';
import cors from '@fastify/cors'
import dotenv from 'dotenv';
import ratelimit from "@fastify/rate-limit"
dotenv.config();
const app = fastify({
ignoreTrailingSlash: true
})
const start = async () => {
try {
await neuralConnect();
await app.register(ratelimit, {
max: 60,
timeWindow: '1 minute'
})
app.register(defaultRouter)
app.register(operatorRouter, { prefix: '/api' })
app.register(recruitRouter, { prefix: '/api' })
app.register(searchRouter, { prefix: '/api' })
app.register(skinRouter, { prefix: '/api' })
app.register(adminRouter, { prefix: '/api' })
await app.register(cors)
const PORT = process.env.PORT || 5219;
await app.listen({ port: Number(PORT), host: '0.0.0.0' })
} catch (err) {
app.log.error(err)
process.exit(1)
}
}
start()