-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
37 lines (31 loc) · 1.03 KB
/
Copy pathapp.js
File metadata and controls
37 lines (31 loc) · 1.03 KB
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
const config = require('config');
const express = require("express");
const cookieParser = require('cookie-parser');
const cors = require("cors");
const { authenticate } = require("./middleware/authentication");
const pinoHttp = require('pino-http');
const { baseLogger } = require('./logger');
require('dotenv').config({ path: '.env.local' });
const app = express();
// Middleware
if (process.env.LOGGING_HTTP_REQUESTS === 'true') {
app.use(pinoHttp({ logger: baseLogger }));
}
app.use(express.json());
app.use(cookieParser());
const corsOptions = {
origin: (origin, callback) => {
if (!origin || config.cors.allowedOrigins.includes(origin)) {
callback(null, origin);
} else {
callback(new Error('Not allowed by CORS'));
}
},
credentials: true,
methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
allowedHeaders: ['Content-Type', 'Authorization', 'X-Firebase-Token', 'X-Discord-Code'],
};
app.use(cors(corsOptions));
app.options('*', cors(corsOptions));
app.use(authenticate());
module.exports = app;