Não foi possível conectar - node.js

Olá, estou fazendo uma aplicação em nodejs para um trabalho da faculdade mas estou me deparando com um “erro” muito estranho. Eu simplesmente não consigo acessar meu http://localhost:3000/, e o pior é que não aparece nada de errado no terminal. Segue o código:

routes.js

const express = require('express')

const router = express.Router()

const { logginRequired } = require('../config/auth')

const pool = require('../config/db')

// rota principal

router.get('/', (req, res) => res.render('home'))

// rota de cadastro

router.post('/register', (req, res) => {

    pool.getConnection((err, connection) => {

        if (err) throw err

        const { name, email, password } = req.body

        let errors = []

        if (!name || !email || !password) errors.push('Preencha todos os campos!')

        if (password.length < 5) errors.push('A senha precisa ter pelo menos 5 caracteres!')

        if (errors.length > 0) {

            req.flash('errors', errors)

            return res.redirect('/')

        }

        connection.query('SELECT * FROM users WHERE email=?', [email], (err, rows) => {

            connection.release()

            if (err) {

                errors.push('Usuario ja cadastrado!')

                req.flash('errors', errors)

                return res.redirect('/')

            }

        })

        connection.query('INSERT INTO users SET name=?, email=?, password=?', [name, email, password], (err, rows) => {

            connection.release()

            if (err) throw err

            return res.redirect('/')

        })

    })

})

// rota de login

router.post('/login', (req, res) => {

    pool.getConnection((err, connection) => {

        const { email, password } = req.body

        let errors = []

        if (!email || !password) {

            errors.push('Preencha todos os campos!')

            req.flash('errors', errors)

            return res.redirect('/')

        }

        connection.query('SELECT * FROM users WHERE email = ? AND password = ?', [email, password], (err, rows) => {

            connection.release()

            if (rows.length > 0) {

                req.session.userID = rows[0].id,

                    req.session.user = rows[0],

                    res.redirect('/user')

            } else {

                errors.push('Email e/ou senha incorretos!')

                req.flash('errors', errors)

                return res.redirect('/')

            }

        })

    })

})

// rota de logout

router.get('/logout', (req, res) => {

    req.session.destroy()

    return res.redirect('/')

})

// rota do usuario

router.get('/user', logginRequired, (req, res) => {

    pool.getConnection((err, connection) => {

        const user_id = req.session.user.id

        connection.query('SELECT * FROM posts WHERE user_id=?', [user_id], (err, rows) => {

            connection.release()

            if (rows.length > 0) {

                const story = rows

                res.render('userPage', { data: story })

            } else {

                const msg = 'POXA, Parece que você ainda não tem nenhuma história :('

                res.render('userPage', { msg: msg })

            }

        })

    })

})

// rota de publicação get

router.get('/user/write', logginRequired, (req, res) => res.render('write'))

// rota de publicação post

router.post('/user/write', logginRequired, (req, res) => {

    pool.getConnection((err, connection) => {

        const { title, status, body } = req.body

        const user_name = req.session.user.name

        

        if(!title || !status || !body) {

            errors.push('Preencha todos os campos!')

            req.flash('errors', errors)

            return res.redirect('/user/write')

        } else {

            connection.query('INSERT INTO posts SET title=?, status=?, body=?, user_id=?, user_name=?', [title, status, body, user_id, user_name], (err, rows) => {

                connection.release()

                if(err) throw err

                return res.redirect('/user')

            })

        }

    })

})

// rota de todoas a publicações

router.get('/user/stories', (req, res) => {

    pool.getConnection((err, connection) => {

        connection.query('SELECT * FROM posts', (err, rows) => {

            connection.release()

            if (rows.length > 0) {

                const stories = rows

                res.render('stories', { data: stories })

            } else {

                res.render('stories')

            }

        })

    })

})

// rota para remover historias

router.delete('/story/:id', (req, res) => {

    const storyId = req.params.id

    pool.getConnection((err, connection) => {

        connection.query('DELETE FROM posts WHERE id=?', [storyId], (err, rows) => {

            connection.release()

            if (err) throw err

            res.redirect('back')

        })

    })

})

// rota para editar história get

router.get('/user/story/edit/:id', (req, res) => {

    const storyId = req.params.id

    pool.getConnection((err, connection) => {

        connection.query('SELECT id, title, status, body FROM posts WHERE id=?', [storyId], (err, rows) => {

            connection.release()

            if (rows.length > 0) {

                res.render('edit', { data: results[0] })

            } else {

                res.send('404')

            }

        })

    })

})

// rota para editar história put

router.put('/user/story/edit/:id', (req, res) => {

    const storyId = req.params.id

    const { title, status, body } = req.body

    pool.getConnection((err, connection) => {

        connection.query('UPDATE posts SET title=?, status=?, body=? WHERE id=?',[title, status, body, storyId], (err, rows) => {

            connection.release()

            if (err) throw err

            req.flash('success', 'História atualizado com sucesso!')

            return res.redirect('/user/stories')

        })

    })

})

// rota de história única

router.get('/user/singleStory/:id', (req, res) => {

    const storyId = req.params.id

    pool.getConnection((err, connection) => {

        connection.query('SELECT * FROM posts WHERE id=?', [storyId], (err, rows) => {

            connection.release()

            if (rows.length > 0) {

                res.render('singleStory', { data: results[0] })

            } else {

                res.send('404')

            }

        })

    })

})

// rota de pesquisar de história

router.get('/search', (req, res) => {

    const { title } = req.query

    pool.getConnection((err, connection) => {

        connection.query('SELECT * FROM posts WHERE title LIKE "%' + title + '%"', (err, rows) => {

            connection.release()

            if (rows.length > 0) {

                const stories = results

                res.render('find', { data: stories })

            } else {

                req.flash('errors', 'A história pesquisada não existe')

                res.render('find')

            }

        })

    })

})

module.exports = router

app.js

 require('dotenv').config()

const express = require('express')

const session = require('express-session')

const MySQLStore = require('express-mysql-session')(session);

const flash = require('connect-flash')

const path = require('path')

const routes = require('./src/routes/routes')

const { globals } = require('./src/middleware/middleware')

const methodOverride = require('method-override')

const app = express()

app.use(express.urlencoded({ extended: true }));

app.use(express.json());

app.use(methodOverride(function (req, res) {

    if (req.body && typeof req.body === 'object' && '_method' in req.body) {

      // look in urlencoded POST bodies and delete it

      var method = req.body._method

      delete req.body._method

      return method

    }

  }))

app.set('views', path.resolve(__dirname, 'src', 'views'));

app.set('view engine', 'ejs');

app.use(express.static(path.join(__dirname, '/public')))

app.use(session({

    secret: process.env.SECRET,

    resave: false,

    saveUninitialized: false,

    cookie: { maxAge: 24 * 60 * 60 * 1000 },

    store: new MySQLStore({

        host: process.env.HOST,

        port: process.env.PORTDB,

        user: process.env.USER,

        password: process.env.PASSWORD,

        database: process.env.DB

    })

}))

app.use(flash())

app.use(globals)

app.use(routes)

const PORT = 5000

app.listen(PORT, () => console.log(`Running on port ${PORT}`))

db.js

const mysql = require('mysql')

const pool = mysql.createPool({

    connectionLimit: 100,

    host: process.env.HOST,

    user: process.env.USER,

    password: process.env.PASSWORD,

    database: process.env.DB

})

module.exports = pool

Isso é o que aparece na minha tela quando tento acessar a rota principal:


E o curioso é que eu tenho um projeto semelhante rodando com node e mongobd funcionando normalmente.

A porta definida é a 5000 e não 3000