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

231
Visualizações
¿Cómo acceder a los datos del componente Vue y al enrutador desde funciones javascript externas?

Soy nuevo en Vue. Estoy tratando de construir una especie de middleware donde pueda verificar todos los códigos de estado y manejar la espera que quiero.

Quiero usar esta función en todos los lugares donde envíe una solicitud al backend. Para evitar la duplicación de código, estoy usando una función de middleware.

la función:

 module.exports.serverErrorMiddleware = async (res)=>{ const status = res.status; if(status == 500) return router.push('/error') //problem 1 if(status == 404) return router.push('/notfound') if(status == 302) return router.push('/login') if(status == 403 && !(res.error.isrefTokenError)) return router.push('/unauthorized') if(status == 400) this.error = res.error.message // problem 2 if(status == 401){ if(!localStorage.getItem('refresh_token')) return router.push('/login') try{ const response = await axios({ method : 'get', url : 'http://localhost:5000/api/auth/newtoken' }) localStorage.setItem('access_token' , response.auth.accessToken); }catch(err){ if(err.response.status == 403 && err.response.error.isrefTokenError) return router.push('/login'); router.push('/error') } } }

Problema 1: Quiero insertar una nueva ruta en el router para redireccionamientos, pero no sé cómo acceder al router .

problema 2: quiero cambiar los data en el componente Vue de esta función. Quiero mostrar el error al usuario según el error que recibo del servidor. Así que quiero acceder a la propiedad de error en los data del componente desde el que se llama a esta función.

Llamo a esta función en la solicitud de catch de axios

 async submitForm(event){ event.preventDefault() try{ const response = await axios({ method : 'post', url : 'http://localhost:5000/api/auth/register', data : { username : this.formData.username, password : this.formData.password } }) console.log(response) }catch(err){ serverErrorMiddleware(err.response) } }
about 4 years ago · Juan Pablo Isaza
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