He estado atascado en esto durante demasiado tiempo sin poder encontrar dónde está mi error, estoy creando una API con node.js a través de express y todas las funciones de Restful funcionan bien para mí, excepto la actualización que se atasca en el envío del cartero request" mientras la base de datos se actualiza sin problemas, sospecho que el error está en algún lugar de la respuesta, pero juro que probé todas las combinaciones que me vinieron a la mente para obtener la respuesta sin éxito. Aquí está mi código para esto:
en el enrutador
router.put('/:id', hlpJWT.authenticateToken, ctrProfile.updateInfo);en el controlador
updateInfo = async function (req, res, next) { const input = { name: req.body.name, password: await srvAuth.cryptPass(req.body.password), ..., // other input fields }; let user = await srvProfile.updateProfile(input); if (user) res.json(user); else { res.status(404); res.json({ error: "user not found" }); } };en el servicio
updateProfile = function (input) { return new Promise((resolve, reject) => { query( "UPDATE users SET ? WHERE ?", [ { name: input.name, ... // more input fields }, { user_id: input.id }, ], function (error, result) { if (error) { return reject(error); } return resolve(result); } ); }); };Gracias de antemano a quien quiera ayudar
ACTUALIZACIÓN: en última instancia, acabo de actualizar para expresar v5 y funciona bien allí, por lo que definitivamente fue el manejo de errores lo que lo causó, pero nunca descubrí qué es específicamente.
Parece que tiene un error no controlado en esta solicitud que impide que se envíe una respuesta a su cliente, en este caso, Postman. Podría ser la creación de la contraseña o la actualización del usuario lo que está provocando esto.
Si envuelve su solicitud de esta manera, estoy seguro de que su cliente obtendrá una respuesta:
try { const password = await srvAuth.cryptPass(req.body.password); const input = { ..., // input fields password, } let user = await srvProfile.updateProfile(input); if (user) { res.json(user); } else { res.status(404); res.json({error: 'user not found'}); } } catch (e) { res.status(500).json({error: e, message: 'internal server error'}); }