создание запроса DELETE с использованием nodejs в базе данных sql - PullRequest
0 голосов
/ 19 ноября 2018

Впервые до node.js и научимся использовать mysql с node. У меня есть form.html, у которого есть две кнопки для ввода department_no и department_name. Я успешно могу вставить в базу данных mysql, но не знаю, как удалить конкретную dept_no. То, что я хочу сделать, это ввести dept_no и dept_name, а затем DELETE из моей базы данных на основе dept_no. Также я хочу иметь возможность проверить, что вводит пользователь, чтобы убедиться, что это действительные значения dept_no и dept_name. Любые идеи о том, как начать или что посмотреть, чтобы быть в состоянии сделать это было бы чрезвычайно полезно. Я вставлю свои node.js и form.html внизу.

node.js

// DELETE BELOW
app.delete("/deleteEmp/", (req, res) => {
  console.log("Department number is " + req.body.department_no);
  console.log("Department name is " + req.body.department_name);

  const deptNumber = req.body.department_no;
  const deptName = req.body.department_name;

  const connection = mysql.createConnection({
    host: "localhost",
    user: "root",
    database: "employees"
  });

  const queryString = "DELETE departments WHERE dept_no = ?";
  connection.query(queryString, [department_no], (err, results, fields) => {
    if (err) {
      console.log("Could not delete" + err);
      res.sendStatus(500);
      return;
    }
    console.log("Deleted department_no with dept_name");
    res.end();
  });
});

form.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>SQLFORM</title>
    <style>
      #space {
        margin-top: 20px;
      }
    </style>
  </head>
  <body>
    <div>Fill Form Below</div>
    <hr />
    <div id="space">
      <form action="/deleteEmp" method="DELETE">
        <input placeholder="Enter Department Number" name="department_no" />
        <input placeholder="Enter Department Name" name="department_name" />
        <button>Submit</button>
      </form>
    </div>
  </body>
</html>

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Другой альтернативой является выполнение AJAX-запроса, который не имеет ограничений на разрешенные методы. Упрощенный пример:

document.querySelector('#space form').addEventListener('submit', (event) => {
  event.preventDefault();

  let formData = new FormData();
  formData.append('department_no', document.querySelector("input[name='department_no']").value);
  formData.append('department_name', document.querySelector("input[name='department_name']").value);

  fetch('https://yoururl.com/deleteEmp', {
    method: 'DELETE',
    headers: {
      "Content-type": "application/x-form-urlencoded"
    },
    body: formData
  });
});
0 голосов
/ 19 ноября 2018

HTML-формы не поддерживают DELETE запросов в целом. Приложения Node могут использовать обходной путь, подобный этому - https://github.com/expressjs/method-override

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...