Tengo un proyecto de bot de Discord con muchas variables (números, cadenas, etc.). Ahora uso .ENV para almacenar mis variables. Me gustaría cambiar eso. Aprendí que puedes usar .ENV para variables sensibles. Por ejemplo (Discord.js), su token de bot. Intenté buscar en línea, pero no pude encontrar la respuesta correcta. Idealmente, me gustaría tener un solo archivo con todas mis cadenas. Por ejemplo:
botcolor = #ffffff
Nuevo:
const botcolor = ./config.js
botcolor = ${botcolor}
Un ejemplo diferente con una cadena (cuando haces ?ping )
message.channel.send("Pong!")
Nuevo:
const answer = ./config.js
message.channel.send(`${answer}`)
Algo como eso. No tengo mucha experiencia con JS. Así que lo siento si no estoy muy claro. Como tengo varios bots, quiero tener un archivo de configuración. Mi bot es como una plantilla, puedo agregar diferentes tipos de configuraciones, para que todo el bot (color, respuestas) cambie. Mi bot está en Discord.js v12 por cierto, ya que actualizar significaría casi volver a escribir mis bots.
Entonces, ¿alguien tiene una solución para un archivo de configuración externo?
Como está usando Node.JS, puede usar los requisitos de CommonJS. Me imagino que en la parte superior de su archivo JavaScript principal tiene un fragmento que dice algo como:
const discord = require("discord.js"); ¡También puedes hacer eso para tus propios archivos!
Considere esta configuración básica de archivos:
- config.js - index.js <-- entry file Dentro de config.js , exporta datos para que los use otro archivo. Podemos hacerlo así:
module.exports = { answer: "blah blah blah", botColor: "#fff", };Puede exportar cualquier cosa, pero lo más común es una función o un objeto (que acabamos de hacer). Ahora podemos usar el archivo de configuración así:
// index.js const config = require("./config"); Es importante agregar ./ delante de su archivo o Node intentará importar desde /node_modules . Luego, después de importarlo, podría usarlo como si fuera un objeto:
message.channel.send(config.answer); // <-- "blah blah blah"Puede exportar múltiples objetos:
// config.js exports.bot = { answer: "blah blah blah" }; exports.colors = { main: "#fff" };Entonces lo usas como:
// index.js const config = require("./config"); const answer = config.bot.answer;O con desestructuración:
// index.js const { bot, colors } = require("./config"); bot.answer; // <-- "blah blah blah" colors.main // <-- "#fff" Nota: También puede hacer require("./config.js") , pero creo que la sintaxis sin .js es más fácil de entender. También puede requerir archivos json como objetos.