0% found this document useful (0 votes)
20 views3 pages

App - Js New

Uploaded by

hspandit071
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views3 pages

App - Js New

Uploaded by

hspandit071
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

const express = require("express");

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


const mysql = require("mysql2");
const app = express();
const path = require("path");
const methodOverride = require("method-override");
const { v4: uuidv4 } = require("uuid");
const bcrypt = require("bcrypt"); // Import bcrypt for password hashing
let port = 3000;

app.use(methodOverride("_method"));
app.use(express.urlencoded({ extended: true }));
app.set("view engine", "ejs");
app.set("views", path.join(__dirname, "/views"));

const conn = mysql.createConnection({


host: 'localhost',
user: 'root',
database: 'myapp',
password: 'Sk@123456'
});

// Home route
app.get("/", (req, res) => {
let q = `SELECT count(*) FROM user`;
conn.query(q, (err, result) => {
if (err) throw err;
let count = result[0]["count(*)"];
res.render("home.ejs", { count });
});
});

// Show all users route


app.get("/user", (req, res) => {
let q = `SELECT * FROM user`;
conn.query(q, (err, data) => {
if (err) throw err;
res.render("users.ejs", { data });
});
});

// Edit user route


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

// Update user route


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

let q = `SELECT * FROM user WHERE id='${id}'`;


conn.query(q, (err, result) => {
if (err) throw err;
let user = result[0];

// Check if the password entered matches the user's password


if (user.password !== password) {
res.send("WRONG Password entered!");
} else {
// Update the username
let q2 = `UPDATE user SET username='${username}' WHERE id='${id}'`;
conn.query(q2, (err) => {
if (err) throw err;
console.log("Username updated!");
res.redirect("/user");
});
}
});
});

// Add new user route


app.get("/user/new", (req, res) => {
res.render("new.ejs");
});

app.post("/user/new", (req, res) => {


let { username, email, password } = req.body;
let id = uuidv4();

// Hash the password before storing


bcrypt.hash(password, 10, (err, hash) => {
if (err) throw err;

// Query to insert new user


let q = `INSERT INTO user (id, username, email, password) VALUES ('${id}', '$
{username}', '${email}', '${hash}')`;
conn.query(q, (err) => {
if (err) throw err;
console.log("Added new user");
res.redirect("/user");
});
});
});

// Delete user route


app.delete("/user/:id", (req, res) => {
let { id } = req.params;
let { password } = req.body; // Get password from the request body

let q = `SELECT * FROM user WHERE id='${id}'`;


conn.query(q, (err, result) => {
if (err) throw err;
let user = result[0];

// Check if the password entered matches the stored hashed password


bcrypt.compare(password, user.password, (err, isMatch) => {
if (err) throw err;
if (!isMatch) {
return res.send("WRONG Password entered!");
}
let q2 = `DELETE FROM user WHERE id='${id}'`; // Query to delete user
conn.query(q2, (err) => {
if (err) throw err;
console.log("User deleted!");
res.redirect("/user");
});
});
});
});

app.listen(port, () => {
console.log('Server is running');
});

You might also like