Tengo dificultades para recuperar el cuerpo de una solicitud de publicación expresa desde un formulario HTML. En mi código, intento extraerlo normalmente sin procesar y con JSON.stringify. Todavía no hay dados, solo salidas: "" Cuerpo: "indefinido" recibido en app.js. ------- Cuerpo: "[objeto Objeto]" recibido en app.js!"" y la consola genera undefined y {}. Cualquier ayuda es apreciada. Bellow es tanto mi código JS como el código HTML.
const express = require('express'); const app = express(); const path = require('path'); const bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(express.urlencoded({ extended: true })) app.get('/', function(req, res) { res.sendFile(path.join(__dirname, './index.html')); }) app.post('/submit-form', function(req, res) { var x = req.body.key; var y = req.body; console.log(x); console.log(y); console.log(JSON.stringify(x)); console.log(JSON.stringify(y)); res.send(`Body: "${x}" recieved in app.js! ------- Body: "${y}" recieved in app.js!`); }) app.listen(4001, function() { console.log("Server is listening on port 4001..."); }) <html lang="en"> <head> <meta charset="UTF-8"> <title>Sample Site</title> <style> body { padding-top: 50px; } </style> </head> <body> <div class="container"> <div class="jumbotron"> <h1>res.sendFile() Works!</h1> <form method="POST" action="/submit-form", body= "key: 'hellow wolrd'"}> <input type="submit"> </form> </div> </div> </body> </html>```El cuerpo de una solicitud POST está determinado por los valores de los controles de formulario nombrados (elementos input , select , etc.) en el formulario.
No hay ningún atributo de body para el elemento <form> .
MDN tiene un tutorial de Forms + Express que te recomiendo que leas.
<form method="POST" action="/submit-form"> <input name=key value="hello, world"> <button>Submit</button> </form>