Estoy creando una página de comercio electrónico usando Express y cuando quiero eliminar uno de mis productos, todo parece funcionar bien, pero la URL no cambia (y debería).
Así que aquí está mi código:
//ruta
router.use('/product', require('./product.routes')) router.delete('/item/:id', productController.deleteProduct);//controlador
deleteProduct: (req, res) => { let id = req.params.id; let newDatabase = database.filter((item) => item.id != id); fs.writeFileSync(path.join(__dirname, '../database/productos.json'), JSON.stringify(newDatabase, null, 4), {encoding: 'utf-8'}); let productVisited = newDatabase.filter(item=>item.category=="visited"); let productInSale = newDatabase.filter(item=>item.category=="in-sale"); res.render("home", {newDatabase, productVisited, productInSale }); } }//EJS
<form method="POST" action="/product/item/<%= database.id %>?_method=DELETE"> <input type="submit" class="action-button delete" value="ELIMINAR"> </form>//PUNTO DE ENTRADA (APLICACIÓN.JS)
const express = require('express'); const path = require('path'); const methodOverride = require ('method-override'); const app = express(); app.use(express.static(path.join(__dirname, "./public"))); app.use(express.urlencoded({ extended: false })); app.use(express.json()); app.use(methodOverride("_method")); app.set("view engine", "ejs"); app.set("views",path.join(__dirname, "./src/views")); app.use("/", require ("./src/routes/index.routes")); app.use((req, res, next) => { res.status(404).render('error') }); app.listen(process.env.PORT || 3000, () => { console.log('Server Running') })¡Gracias de antemano por tu tiempo! que tengas un lindo día