Si estás trabajando con n8n y has intentado utilizar axios
dentro de un nodo de código (Code
), es posible que te hayas encontrado con el siguiente error:
{
"errorMessage": "Cannot find module 'axios' [line 1]",
"errorDescription": "VMError",
"n8nDetails": {
"nodeName": "Code",
"nodeType": "n8n-nodes-base.code",
"n8nVersion": "1.80.4 (Self Hosted)"
}
}
Este error ocurre porque, por defecto, n8n restringe el uso de módulos externos en los nodos de código. A continuación, veremos cómo solucionar este problema.
🔹 Paso 1: Instalar axios
Si aún no has instalado axios
, puedes hacerlo ejecutando el siguiente comando:
npm install -g axios
Si estás utilizando Docker, instala axios
dentro del contenedor de n8n con:
docker exec -it n8n npm install -g axios
🔹 Paso 2: Habilitar el uso de módulos externos en n8n
Para permitir que axios
se utilice dentro de un nodo de código en n8n, debes configurar la variable de entorno NODE_FUNCTION_ALLOW_EXTERNAL
.
Opción 1: Configurar en Docker
Si usas Docker, edita tu archivo docker-compose.yml
y agrega lo siguiente dentro del bloque environment
:
environment:
- NODE_FUNCTION_ALLOW_EXTERNAL=axios
Luego, reinicia el contenedor:
docker-compose down && docker-compose up -d
Opción 2: Configurar en un Servidor Local
Si estás ejecutando n8n sin Docker, exporta la variable de entorno manualmente antes de iniciar n8n:
export NODE_FUNCTION_ALLOW_EXTERNAL=axios
n8n start
🔹 Paso 3: Usar axios
en el Nodo de Código
Después de configurar la variable de entorno, puedes utilizar axios
en n8n con global.require
de la siguiente manera:
const axios = global.require('axios');
async function main() {
const response = await axios.get('https://jsonplaceholder.typicode.com/todos/1');
return response.data;
}
return main();
Si el error persiste, prueba ejecutando este código para verificar si require
está disponible:
return global;
Si require
no aparece en la salida, significa que la configuración de n8n aún no permite el uso de módulos externos.
🚀 Conclusión
El error Cannot find module 'axios'
en n8n se debe a que los módulos externos están deshabilitados por defecto en los nodos de código. Para solucionarlo, es necesario:
- Instalar
axios
en tu entorno. - Habilitar
NODE_FUNCTION_ALLOW_EXTERNAL=axios
en la configuración de n8n. - Utilizar
global.require('axios')
dentro del nodo de código.
Con estos pasos, ya podrás utilizar axios
sin problemas en n8n para hacer peticiones HTTP dentro de tus flujos de automatización. 🚀