xssbook/index.js
2023-01-21 15:45:14 -05:00

53 lines
1.2 KiB
JavaScript

require('dotenv').config()
const express = require('express')
const app = express()
const port = 8080
const rateLimiter = require('express-rate-limit')
const limiter = (min, count) => {
return rateLimiter({
windowMs: min * 60 * 1000,
max: count,
message: 'Too many requests, please try again later.',
standardHeaders: true,
legacyHeaders: false,
})
}
const cookieParser = require('cookie-parser')
app.use(cookieParser())
app.use(express.json());
app.use(express.static('public'))
app.get('/login', (req, res) => {
res.sendFile('login.html', { root: './public' })
})
app.get('/home', (req, res) => {
res.sendFile('home.html', { root: './public' })
})
app.get('/people', (req, res) => {
res.sendFile('people.html', { root: './public' })
})
app.get('/profile', (req, res) => {
res.sendFile('profile.html', { root: './public' })
})
app.use('/api', limiter(1,60))
app.use('/api/register', limiter(60, 5))
app.use('/api/login', limiter(10, 5))
const api = require('./src/api.js')
app.use('/api', api);
app.use((req, res, next) => {
res.status(404).sendFile('404.html', { root: './public' })
})
app.listen(port, () => {
console.log(`App listening on port http://127.0.0.1:${port}`)
})