Actualmente estoy ejecutando 2 servidores:
A continuación se muestra mi acción para iniciar sesión en un usuario:
// Redux Action export function loginUser(creds, role) { return dispatch => { // We dispatch requestLogin to kickoff the call to the API dispatch(requestLogin(creds)); return axios.post(`${ROOT_URL}/login/${role}`, creds).then((response) => { console.log(response); if(response.status === 200) { // If login was successful, set the token in local storage localStorage.setItem('id_token', response.data); // Dispatch the success action dispatch(receiveLogin(response)); return response; } }).catch(err => { // If there was a problem, we want to // dispatch the error condition dispatch(loginError(err.data)); return err; }); }; }Deliberadamente desconecté mi base de datos para detectar errores y ver qué sucede. Entonces, esto es lo que puedo ver en la terminal:
12:49:24 Project-0 Server is listening at port 3000 12:49:24 Project-0 Mongoose disconnected 12:49:24 Project-0 Mongoose connection error: MongoError: connect ECONNREFUSED 192.168.1.116:27017 12:49:34 Project-0 Wed, 13 Apr 2016 07:19:34 GMT express deprecated res.send(status): Use res.sendStatus(status) instead at app/index.js:61:7 12:49:34 Project-0 OPTIONS /login/admin Wed, 13 Apr 2016 07:19:34 GMT ::ffff:192.168.1.134 200 5.894 12:49:35 Project-0 POST /login/admin Wed, 13 Apr 2016 07:19:35 GMT ::ffff:192.168.1.134 - -Ahora, cuando envío el formulario de inicio de sesión, el estado pasa de pendiente a cancelado .
¿Cómo podemos capturar este estado usando axios o tenemos que escribir un mecanismo para esto en express?
Nota: No pude etiquetar axios porque la etiqueta no existe y no puedo crear una nueva.
usa axios.isCancel()
.catch(err => { if(axios.isCancel(err)) { // do something } } )En realidad, detecta errores (respuestas fallidas) en la instrucción catch. Por ejemplo, puede iniciar sesión en la consola de esta manera:
.catch(err => { // If there was a problem, we want to // dispatch the error condition dispatch(loginError(err.data)); console.log(err); return err; });