Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

334
Vistas
Respuesta de Axios indefinida cuando la función no encuentra al usuario

Estoy tratando de acceder al mensaje de error del servidor express con el kit de herramientas redux. Si no se encuentra ningún usuario, enviamos un mensaje de error con el código de estado. Todo está bien cuando uso cartero, recibo una respuesta de error. Pero cuando intento acceder a esto en el lado del cliente, la respuesta de axios no está definida cuando recibo un error. En la pestaña de red, todavía obtengo un error. Eso lleva a que el reductor del kit de herramientas redux no se rechace y no pueda recibir un mensaje de error.

Controlador de servidor y función de servicio

 controller .... try { const user = await findUser({ ...some values }); //I want this message in redux error message if (!user) return res.status(404).send('No user found!') const response = await friendService.sendInvitation({...some values}); res.send(response); } catch (error) { res.status(400).send(error); } ... const findUser=async({id,username})=>{ const user= await users.findOne(...some logic) return user }

findUser está devolviendo al usuario si lo encuentra, si no, entonces no está definido. Cuando uso axios y busco un usuario no existente, obtengo una respuesta indefinida. Pero no puedo obtener ningún error del backend.

Editar
findUser devuelve nulo si no se encuentra el usuario
Rebanada del kit de herramientas de Redux con llamada a una API

 const api = axios.create({ baseURL:'http://localhost:4000/api', headers:{ 'Content-Type':"application/json" }, withCredentials:true }) .... const sendInvitation = createAsyncThunk("friends/sendInvitation", async({ username, shortId }, thunkApi) => { try { if (!username || !shortId) return; const response = await api.post(`/friend/send`, { username, shortId }) return response; } catch (error) { console.log(error) }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

const sendInvitation = createAsyncThunk("friends/sendInvitation", async({ username, shortId }, thunkApi) => { try { if (!username || !shortId) return; const {data} = await api.post(`/friend/send`, { username, shortId }) return data; } catch (error) { const message = (error.response && error.response.data && error.response.data.message) || error.message || error.toString(); return thunkAPI.rejectWithValue(message); }

Con su extraReducer,

 .addCase(sendInvitation.rejected, (state, action) => { state.isLoading = false; state.isError = true; state.message = action.payload; })

Entonces, cuando la solicitud falla, envía un mensaje en el estado, que se logra a partir de la llamada de rechazo

Supongo que tienes un estado inicial como este

 const initialState = { data: null, isError: false, isSuccess: false, isLoading: false, message: "", }; if (!user) return res.status(404).send({message:'No user found!'})
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede ser una pregunta un poco obvia, pero ¿qué tipo de datos devuelve findUser si no se encuentra el usuario?

Si el valor de retorno se puede considerar "veraz" de todos modos, la línea if (!user) return res.status(404).send('No user found!') no se evaluará.

¿Tal vez cambiar findUser para devolver nulo si no se encuentra ningún usuario?

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda