Archivos de configuración

Una vez que hayas añadido tu bot a un servidor, ¡el siguiente paso es empezar a escribir su código y ponerlo online! Empecemos creando un archivo de configuración para tu token de cliente y un archivo principal para tu aplicación bot.

Como se explica en la sección "¿Qué es un token?", tu token es esencialmente la contraseña de tu bot, y deberías protegerlo lo mejor posible. Esto se puede hacer a través de un archivo config.json o mediante el uso de variables de entorno.

Abre tu aplicación en el Portal del Desarrolladores de Discordopen in new window y ve a la página "Bot" para copiar tu token.

Uso de config.json

Almacenar datos en un archivo config.json es una forma común de mantener seguros tus valores sensibles. Crea un archivo config.json en el directorio de tu proyecto y pega tu token. Puedes acceder a tu token dentro de otros archivos usando require().

{
	"token": "tu-token-va-aquí"
}
1
2
3
const { token } = require('./config.json');

console.log(token);
1
2
3

CUIDADO

Si estás usando Git, no deberías insertar este archivo y deberías ignorarlo mediante .gitignore.

Uso de variables de entorno

Las variables de entorno son valores especiales para tu entorno (por ejemplo, sesión de terminal, contenedor Docker o archivo de variables de entorno). Puedes pasar estos valores al ámbito de tu código para poder utilizarlos.

Una forma de pasar variables de entorno es a través de la interfaz de línea de comandos. Cuando inicies tu aplicación, en lugar de node index.js, utiliza TOKEN=tu-token-va-aquí node index.js. Puedes repetir este patrón para exponer también otros valores.

Puedes acceder a los valores establecidos en tu código a través de la variable global process.env, accesible en cualquier archivo. Ten en cuenta que los valores pasados de esta manera siempre serán cadenas y que puede que necesites parsearlos a un número, si los usas para hacer cálculos.

A=123 B=456 DISCORD_TOKEN=tu-token-va-aquí node index.js
console.log(process.env.A);
console.log(process.env.B);
console.log(process.env.DISCORD_TOKEN);
1
2
3

Uso de dotenv

Otro enfoque común es almacenar estos valores en un archivo .env. Esto evita tener que copiar siempre el token en la línea de comandos. Cada línea en un archivo .env debe contener un KEY=value (LLAVE=valor).

Para ello puedes utilizar el módulo dotenvopen in new window. Una vez instalado, requiere y utiliza el paquete para cargar tu archivo .env y adjuntar las variables a process.env:

npm install dotenv
yarn add dotenv
pnpm add dotenv
A=123
B=456
DISCORD_TOKEN=tu-token-va-aquí
1
2
3
const dotenv = require('dotenv');

dotenv.config();

console.log(process.env.A);
console.log(process.env.B);
console.log(process.env.DISCORD_TOKEN);
1
2
3
4
5
6
7

CUIDADO

Si estás usando Git, no deberías insertar este archivo y deberías ignorarlo mediante .gitignore.

Editores en línea (Glitch, Heroku, Replit, etc.)

Aunque por lo general no recomendamos utilizar editores en línea como soluciones de alojamiento, sino invertir en un servidor privado virtual adecuado, estos servicios también ofrecen formas de mantener a salvo tus credenciales. Consulte la documentación y los artículos de ayuda de cada servicio para obtener más información sobre cómo mantener a salvo los valores confidenciales:

Git y .gitignore

Git es una herramienta fantástica para hacer un seguimiento de tus cambios de código y te permite subir el progreso a servicios como GitHubopen in new window, GitLabopen in new window o Bitbucketopen in new window. Aunque esto es super útil para compartir código con otros desarrolladores, ¡también conlleva el riesgo de subir tus archivos de configuración con valores sensibles!

Puedes especificar archivos que Git debería ignorar en sus sistemas de versionado con un archivo .gitignore. Crea un archivo .gitignore en el directorio de tu proyecto y añade los nombres de los archivos y carpetas que quieras ignorar:

node_modules
.env
config.json
1
2
3

CONSEJO

Aparte de mantener las credenciales seguras, node_modules debería incluirse aquí. Dado que este directorio se puede restaurar basándose en las entradas de los archivos package.json y package-lock.json ejecutando npm install, no es necesario incluirlo en Git.

Puedes especificar patrones bastante emredados en los archivos .gitignore, ¡consulta la en la publicación en freecodecamp sobre .gitignoreopen in new window para más información!