He estado luchando con esto durante tanto tiempo y no puedo entender cuál es el problema. Solo quiero POST a /accountRoutes/editFinalMark y he incluido el código para la ruta, así como el controlador.
<form method="post" action="/accountRoutes/editFinalMark"> <fieldset class="form-group"> <div class="row justify-content-md-center"> <div class="form-group" > <input type="" id="moduleID" name="moduleID" style="display: none;" value="<%= module._id %>"> <input type="" name="editFinalMarkInput" id="editFinalMarkInput" class="urlInput" placeholder="Add Final Mark" style=""> </div> <div class="form-group"> <input type="submit" name="editFinalMarkButton" id="editFinalMarkButton" class="submit-docs" value="Add" style="background-color: #6dabe4; border-top-right-radius: 15px; border-bottom-right-radius: 15px; color: white;" /> </div> </div> </fieldset> </form> // The Route: router.post('/editFinalMark', accountController.editFinalMark_post); // The Controller I want to call: module.exports.editFinalMark_post = async (req, res) => { try { const { editFinalMarkInput, moduleID } = req.body; console.log("\n\n\n\n\n"); console.log("editFinalMarkInput: ", editFinalMarkInput); console.log("moduleID: ", moduleID); Module.findOneAndUpdate( { _id: moduleID }, { $push: { final_mark: editFinalMarkInput } }, function (error, success) { if (error) { console.log(error); } else { console.log(success); } } ); res.status(201).json({ }); } catch (err) { res.status(400).json({ err }) } };Todo lo que sucede cuando hago clic en enviar es que la página se vuelve a cargar y la URL se actualiza para incluir los datos del formulario, pero no completa la acción especificada en el formulario. Tampoco hay errores en absoluto en la consola.
Todo lo que sucede cuando hago clic en enviar es que la página se vuelve a cargar y la URL se actualiza para incluir los datos del formulario, pero no completa la acción especificada en el formulario.
Por lo tanto, ignora tanto la action (porque va a la URL incorrecta) como el method (porque coloca los datos en la URL, por lo que está realizando una solicitud GET).
De esto podemos inferir que tiene otro elemento <form> y ese es el que se está enviando. Simplemente no lo ha incluido en el código de la pregunta.
Los elementos <form> no pueden anidarse, por lo que un validador lo ayudaría a encontrarlo.