Este es el código que tengo actualmente en la carpeta de mi servidor. Me preguntaba por alguna razón que el registro de la consola catch todavía se envía a pesar de que la declaración .then envía activamente una respuesta, aunque res.send funciona y envía una respuesta al usuario.
const express = require("express"); const router = express.Router(); const { API_KEY, API_URL } = process.env const axios = require("axios") router.get("/", async (req, res) => { console.log(API_URL + API_KEY) await axios.get(API_URL + API_KEY + "&count=9") .then((response) => { res.send(response.data) }) .catch( console.log("error") ) }) module.exports = router¡Gracias!
.catch acepta una devolución de llamada: en este momento, está invocando console.log inmediatamente y pasando el resultado a .catch . Este:
// ... .catch(console.log("error"))es equivalente a
const consoleResult = console.log("error"); // ... .catch(consoleResult)Tienes que cambiar a
.catch( () => { console.log("error") } )O, mejor aún, examine el argumento para ver cuál fue el error:
.catch( (error) => { console.log("error:", error.message) } )