En primavera, uso definir mi propia Exception de extensión de clase y anotarla con @ResponseStatus para lanzarla en una situación específica para volver al código de estado específico del usuario y al mensaje de error. Me gustaría hacer algo similar en Express.js en Node.js ¿Es posible?
Ahora uso Q para devolver la promesa rechazada de loginService y devolver explícitamente el código de respuesta y el mensaje.
router.post('/log-in', jsonParser, (req, res) => { loginService.authenticate(req.body.userLogin, req.body.userPassword) .then((successLogin)=>{ res.json(successLogin); }, function (error) { res.status(error.code).json({message: error.reason}); }) });pero mi objetivo es manejar solo promesas resueltas y tirar cada vez que se produce un error. algo como
router.post('/log-in', jsonParser, (req, res) => { loginService.authenticate(req.body.userLogin, req.body.userPassword) .then((successLogin)=>{ res.json(successLogin); }) });y me imagino servicio tirando como
if(!user) new Error(404, 'Cannot find user')y la respuesta devuelta al usuario tendría el código y el mensaje deseados. ¿Es posible implementarlo en Node? ¿Sería eficiente?