total code

 const { faker, tr } = require("@faker-js/faker");

const mysql = require("mysql2");
const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  database: "app",
  password: "abhi@546871",
});

const express = require("express");
const app = express();
const port = 8080;
app.set("view engine", "ejs");
const path = require("path");

app.set("views", path.join(__dirname, "/views"));

const methodOverride = require("method-override");
app.use(methodOverride("_method"));
const exp = require("constants");
const { v4: uuidv4 } = require("uuid");
const { threadId } = require("worker_threads");

app.use(express.urlencoded({ extended: true }));
let users = [
  ["123b", "123_newuserb", "abc@gmail.comb", "abb"],
  ["123c", "123_newuserc", "abc@gmail.comc", "abc"],
];
let data = [];
let q = "INSERT INTO user(id,username,email,password) VALUES ?";
let getRandomuser = () => {
  return [
    faker.string.uuid(),
    faker.internet.username(),
    faker.internet.email(),
    faker.internet.password(),
  ];
};
for (let i = 0; i < 100; i++) {
  data.push(getRandomuser());
}

//   try {
//   connection.query(q, [data],( err,result) => {
//     if (err) throw err;
// console.log(result);  });
// } catch (err) {
//   console.log(err);
// }

// HOME PAGE
app.get("/", (req, res) => {
  let q = "SELECT COUNT(*) FROM user";

  try {
    connection.query(q, (err, result) => {
      if (err) throw err;
      let count = result[0]["COUNT(*)"];
      console.log(count);

      res.render("home.ejs", { count });
    });
  } catch (err) {
    console.log(err);
    res.send("error occured");
  }
});

// SHOW ROUTE
app.get("/users", (req, res) => {
  let q = "SELECT * FROM user";

  try {
    connection.query(q, (err, users) => {
      if (err) throw err;
      res.render("show.ejs", { users });
    });
  } catch (err) {
    console.log(err);
    res.send("error occured");
  }
});

// EDIT ROUTE
app.get("/user/:id/edit", (req, res) => {
  let { id } = req.params;
  let q = `SELECT * FROM user WHERE id='${id}'`;
  try {
    connection.query(q, (err, result) => {
      if (err) throw err;
      let user = result[0];

      res.render("edit.ejs", { user });
    });
  } catch (err) {
    console.log(err);
    res.send("error occured");
  }
});

// TO UPDATE
app.patch("/user/:id", (req, res) => {
  let { id } = req.params;
  let { password: formPass, username: newUsername } = req.body;

  let q = `SELECT * FROM user WHERE id='${id}'`;
  try {
    connection.query(q, (err, result) => {
      if (err) throw err;
      let user = result[0];
      if (formPass != user.password) {
        res.send("WRONG password");
      } else {
        let q2 = `UPDATE user SET username='${newUsername}' WHERE id='${id}'`;
        connection.query(q2, (err, result) => {
          if (err) throw err;
          res.redirect("/users");
        });
      }
    });
  } catch (err) {
    res.send("error occured");
  }
});

// TO ADD INTO DB
app.get("/users/new", (req, res) => {
  res.render("new.ejs");
});
app.post("/users", (req, res) => {
  let { username, EMAIL, password } = req.body;
  let id = uuidv4();

  let q = `INSERT INTO user(id,username,EMAIL,password) VALUES('${id}','${username}','${EMAIL}','${password}')`;

  try {
    connection.query(q, (err, result) => {
      if (err) throw err;
      data.push(result);
      res.redirect("/users");
    });
  } catch (err) {
    res.send("error occured");
  }
});

//TO DELETE
app.delete("/user/:id", (req, res) => {
  let { id } = req.params;
  let q = `DELETE FROM user WHERE id='${id}'`;
  try {
    connection.query(q, (err, result) => {
        if(err) throw err;
        res.redirect("/users");
    });
  } catch (err) {
    res.send("error occured");
  }
});
app.listen(port, () => {
  console.log(`listening to port ${port}`);
});

// connection.end();

Comments

Popular posts from this blog

DATABASE RELATIONSHIPS

ROUTING (GET /) home route

Query Strings