Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

343
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda