-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
58 lines (49 loc) · 1.47 KB
/
server.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
57
58
require('dotenv').config();
const express = require('express');
const path = require('path');
const sequelize = require('./config/Database');
//error handler
const ErrorHandler = require('./controller/ErrorController.js');
//security
const cors = require('cors');
const removeSpacesMiddleware = require('./middleware/RemoveSpacesMiddleware.js');
const { generateKeyPair } = require("./util/pki.js");
//routes
const AuthRoutes = require('./route/AuthRoutes');
//http server
const http = require('http');
const port = process.env.PORT || 8080;
//express app
const app = express();
const server = http.createServer(app);
//midlewares
//cors
app.use(cors());
//static files
app.use('/files', express.static('./files'));
//body parser
app.use(express.json({ limit: '10mb' }));
app.use(express.urlencoded({ limit: '10mb', extended: false }));
//remove spaces from request
app.use(removeSpacesMiddleware);
// Generate keys at startup
generateKeyPair();
//routes
app.use('/api/auth', AuthRoutes);
//error handling
app.use(ErrorHandler);
//client static files
app.use(express.static("./public/dist"));
app.get("*", (req, res) => {
res.sendFile(path.resolve(__dirname, "public","dist", "index.html"));
});
// Disable logging of SQL queries
sequelize.options.logging = false;
//connect to db
sequelize.sync().then(() => {
server.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
}).catch((error) => {
console.error('Database connection error:', error);
});