|
| 1 | +const morgan = require("morgan"); |
| 2 | +const xss = require("xss-clean"); |
| 3 | +const express = require("express"); |
| 4 | +const httpParamPollution = require("hpp"); |
| 5 | +const helmetSecurityHeaders = require("helmet"); |
| 6 | +const sanitize = require("express-mongo-sanitize"); |
| 7 | +const expressRateLimit = require("express-rate-limit"); |
1 | 8 | require("dotenv").config({ |
2 | 9 | path: "./config/config.env", |
3 | 10 | }); |
4 | | -const express = require("express"); |
5 | | -const morgan = require("morgan"); |
| 11 | + |
6 | 12 | const { errorHandler } = require("./middleWare/error-handler"); |
7 | | -const connectDB = require("./config/database"); |
8 | 13 |
|
| 14 | +const connectDB = require("./config/database"); |
9 | 15 | connectDB(); |
10 | 16 |
|
11 | | -const tornadoesRouter = require("./routes/tornadoes"); |
| 17 | +const expressApp = express(); |
| 18 | +expressApp.use(xss()); |
| 19 | +expressApp.use(sanitize()); |
| 20 | +expressApp.use(express.json()); |
| 21 | +expressApp.use(expressRateLimit()); |
| 22 | +expressApp.use(httpParamPollution()); |
| 23 | +expressApp.use(helmetSecurityHeaders()); |
12 | 24 |
|
13 | | -const app = express(); |
14 | | -app.use(express.json()); |
| 25 | +const tornadoesRouter = require("./routes/tornadoes"); |
15 | 26 |
|
16 | 27 | if ((process.env.NODE_ENV = "development")) { |
17 | | - app.use(morgan("dev")); |
| 28 | + expressApp.use(morgan("dev")); |
18 | 29 | } |
19 | 30 |
|
20 | | -// TODO: add security & CORS here -- X |
21 | | - |
22 | 31 | const PORT = process.env.PORT || 5001; |
23 | | -app.use("/v1/tornadoes", tornadoesRouter); |
| 32 | +expressApp.use("/v1/tornadoes", tornadoesRouter); |
24 | 33 |
|
25 | | -app.listen( |
| 34 | +expressApp.listen( |
26 | 35 | PORT, |
27 | 36 | console.log( |
28 | 37 | `Server up in ${process.env.NODE_ENV} mode running on port ${PORT}` |
29 | 38 | ) |
30 | 39 | ); |
31 | | - |
32 | | -app.use(errorHandler); |
| 40 | +expressApp.use(errorHandler); |
33 | 41 |
|
34 | 42 | process.on("unhandledRejection", (error, promise) => { |
35 | 43 | console.log(`>> ERROR >>\n`, error.message); |
|
0 commit comments