tO UPDATE route (PATCH/user/:id)

HERE WE USE PATCH request to UPDATE 

BUT PATCH CANNOT BE INITIALIZED IN HTML, HENCE IT NEEDS TO BE OVERRIDED USING METHOD-OVERRIDE PACKAGE.

TO OVERRIDE

DOWNLOAD USING:  npm i method-override

REQUIRE IT 


const methodOverride = require("method-override");
app.use(methodOverride("_method"));

IN EDIT.EJS

EDIT.EJS

ody>
    <h2>You are going to edit:<%=user.EMAIL%></h2>
    <form method="post" action="/user/<%= user.id %>?_method=PATCH">
        <textarea name="username"><%=user.username%></textarea>
        <input type="password" name="password" placeholder="enter  password">
        <button>Edit password</button>
    </form>

 INDEX.JS

// 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");
  }
});


Comments

Popular posts from this blog

DATABASE RELATIONSHIPS

ROUTING (GET /) home route

Query Strings