Как исправить ошибку при попытке обновить таблицу в SQL - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь с базой данных (sql) обновить элементы с фронта, используя ejs и exprees, но когда я в шаблоне для редактирования, когда я делаю вызов в форме для отправки данных, я получаю сообщение об ошибке не может POST / update Я думаю, что ошибка здесь <form action="/update/<%= book.id %>" method="POST">, поскольку именно тогда я нажимаю кнопку отправки, которая отправляет эту ошибку.

это простая страница для отображения сохраненных данных и возможность манипулирования ими с лицевой стороны, но я не знаю, есть ли моя ошибка в маршрутах или в контроллере

edit.ejs file


<form action="/update/<%= book.id %>" method="POST">
  <div class="form-row">
    <div class="form-group col-md-4">
      <label for="bookName">Name</label>
      <input type="text" class="form-control" id="nameinput"  placeholder="Book name" name="name" value="<%= book.name %>">
    </div>

  <button type="submit" class="btn btn-primary">Save</button>
</form>

my controller.js

controller.edit = (req, res) => {
  const connection = getConnection();
  const { id } = req.params;
  const queryString = 'SELECT * FROM book WHERE id = ?';
  connection.query(queryString, [id], (err, rows, foundBook, foundId) => {
    if (err) {
      console.log(err);
    }
    res.render('edit', { book: foundBook, id: foundId });
  });
};

controller.update = (req, res) => {

  const name = req.body;
  // const author = req.body.updateAutor;
  // const description = req.body.createDescription;
  // const price = req.body.updatePrice;
  // const genre = req.body.updateGenre;
  // const image = req.body.create_image;
  const { id } = req.params;
  const queryString = 'UPDATE book SET ? WHERE id = ?';

  req.getConnection((err, conn) => {
    conn.query(queryString, [name, id], (err, rows) =>{
      if (err) {
        console.log(err);
      }
      res.redirect('/');
    });
  });

my route.js

const express = require('express');
const mysql = require('mysql');
const customerController = require('../controllers/booksConstrollers');
const router = express.Router();
let obj = {}; // create a array to get info from db in get router



router.get('/', customerController.list);
router.get('/add', customerController.add);
router.post('/add', customerController.save);
router.get('/details/:id', customerController.details);
router.get('/update/:id', customerController.edit);
router.post('/update/:id', customerController.update);
//router.get('/delete/:id', customerController.delete);

module.exports = router;

...