-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathweb.js
50 lines (41 loc) · 1.33 KB
/
web.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
// @ts-check
const express = require('express');
const { env } = require('process');
const { createServer } = require('http');
const { createLogger } = require('./lib/util');
const { createSocketServer } = require('./api/socket');
// Routers
const routers = [
require('./api/client').router,
require('./api/authentication').router,
require('./api/remote-api').router,
require('./api/monitor').router,
require('./api/system-api').router,
require('./api/node-api').router,
require('./api/api').router,
require('./api/transactions').router,
require('./api/usages').router,
require('./api/user').router,
require('./api/service').router,
require('./api/nodes').router,
];
let {showInfo} = createLogger();
// Express Handler
let app = express();
// HTTP server
let server = createServer(app);
// CORS
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Headers', '*');
res.setHeader('Access-Control-Allow-Methods', '*');
if (req.method == 'OPTIONS') return res.end();
next();
});
// Express JSON Limit
app.use(express.json({
limit: '5mb'
}));
routers.forEach(router => app.use(router));
createSocketServer(server);
server.listen(env.WEB_PORT ?? 8080, () => showInfo(`Server started on port ${env.WEB_PORT ?? 8080}`));