-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
67 lines (53 loc) · 1.93 KB
/
app.js
File metadata and controls
67 lines (53 loc) · 1.93 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
const express = require('express')
const app = express()
const bodyParser = require('body-parser');
const rateLimit = require("express-rate-limit")
const helmet = require('helmet')
const logger = require('./logging/logger')
require('dotenv').config()
const PORT = process.env.PORT
const mongoose = require('mongoose')
const { connectToMongoDB } = require('./database/db')
const authRoute = require("./routes/authRoute")
const userRoute = require("./routes/users")
const postRoute = require("./routes/posts")
const publishedPostRoute = require("./routes/publishedPosts")
// connection to database
connectToMongoDB()
// Middleware
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
const limiter = rateLimit({
windowMs: 30 * 60 * 1000, // 30 minutes
max: 100, // Limit each IP to 100 requests per `window` (here, per 15 minutes)
standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers
legacyHeaders: false, // Disable the `X-RateLimit-*` headers
})
// applying rate limiting middleware to all requests
app.use(limiter)
// security middleware
app.use(helmet())
// middleware
app.use(express.json());
app.use("/api/auth", authRoute)
app.use("/api/users", userRoute)
app.use("/api/posts", postRoute)
app.use("/api/publishedPosts", publishedPostRoute)
// routes
// const UserControls = require("./controllers/UserController");
// // const PostControls = require("./controllers/UserController");
// app.get("/users", UserControls.all);
// app.get("/users/create", UserControls.create);
// app.get("/users/:username", UserControls.find);
// app.get("/users/:username/posts", UserControls.getAllPosts);
// error handler middleware
app.use((err, req, res, next) => {
logger.error(err.message)
const errorStatus = err.status || 500
res.status(errorStatus).send(err.message)
next()
});
app.listen(PORT || 7000, ()=>{
logger.info(`Server is running at http://localhost:${PORT}`)
})
module.exports = app;