Estoy haciendo una aplicación de tareas solo por practicar, donde las registro y muestro correctamente, el problema surge al intentar eliminar una por el metodo POST enviando por ajax el id
de la tarea a express, resulta que hago un req.body
para mostrar los datos que llegan por POST pero este me retorna un objeto vacio.
A esta funcion le paso por parametro el id de la tarea a eliminar.
let eliminar = (id) => { let data = new FormData(); data.append("id", id); ajax("POST", "/eliminar", data, (e) => { let respuesta = Boolean(e.target.response); if (respuesta) { mostrar(); } else { alert("Error al eliminar elemento"); } }); };
Funcion ajax.
let ajax = (metodo, url, datos, cb) => { let xhr = new XMLHttpRequest(); xhr.open(metodo, url); xhr.addEventListener("load", (e) => { cb(e); }); xhr.send(datos); }
Esta es la ruta donde no llegan los datos enviados.
const express = require("express");const router = express.Router();const tareas = require("./../tareas.js");router.post("/eliminar", (req, res) =>{ console.log(req.body); //imprimo los datos que deberian llegar pero me devuelve un objeto vacio});
Aquí inicia el servidor.
const express = require("express");const app = express();const path = require("path");app.set("port", process.env.PORT || 3000);app.set("views", path.join(__dirname, "views"));app.set("view engine", "ejs");app.use(express.static(path.join(__dirname, "public")));app.use(express.json());app.use(express.urlencoded({extended: true}))app.use("/", require("./routes/index.js"));app.listen(app.get("port"), () =>{ console.log("Servidor iniciado en puerto: " + app.get("port"))});
Nota: No estoy usando body-parser
porque a partir de la version 4.16.x de express ya viene como dependencia.