Я пытаюсь с базой данных (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;