Task 1: Develop REST API - List Users / Add User
    require('dotenv').config()
const express = require('express')
const app = express()
const port = process.env.PORT;
console.log("PORT", port);
app.use(express.json())

// Create Connection Pool
const mysql = require("mysql2/promise");

const pool = mysql.createPool({
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE_NAME,
connectionLimit: process.env.NO_OF_CONNECTIONS
});


// Create Routes
app.get('/api', (req, res) => res.send('REST API is working!'));
app.get('/api/users', getAllUsers);
app.post('/api/users', createUser);

async function getAllUsers(req,res){
const result = await pool.query("select * from users");
res.status(200).json(result[0]);
}

async function createUser(req,res){
let user = req.body;
let params = [ user.name, user.email, user.password, user.role];
const result = await pool.query("insert into users (name,email,password,role) values ( ?,?,?,?)", params);
res.status(201).json({id:result[0].insertId});
}

// Create Commmon Error Handler
app.use(function (err, req, res, next) {
console.log("common error handler")
console.error(err);
res.status(500).json({errorMessage:err.message});
})

app.listen(port, () => console.log(`Server is listening on port ${port}!`));
Task 4: Run the Server
    nodemon app.js