process.env.token no funciona al iniciar el bot de Discord.
Estoy tratando de hacer que mi bot de Discord permanezca en línea las 24 horas del día usando Heroku y Github, pero cada vez que intento ejecutar mi código, obtengo este error.
2022-01-01T03:56:43.950025+00:00 app[Worker.1]: /app/node_modules/discord.js/src/rest/APIRequest.js:33
2022-01-01T03:56:43.950043+00:00 app[Worker.1]: agent ??= new https.Agent({ ...this.client.options.http.agent, keepAlive: true });
2022-01-01T03:56:43.950043+00:00 app[Worker.1]: ^^^
2022-01-01T03:56:43.950044+00:00 app[Worker.1]:
2022-01-01T03:56:43.950044+00:00 app[Worker.1]: SyntaxError: Token inesperado ''''
Hay dos lugares donde coloqué mi token y uso process.env.token
en esos lugares.
El primero es mi archivo index.js.
(async () => {
for (file of functions) {
require(`./src/functions/${file}`)(client);
}
client.handleEvents(eventFiles, ".src/events");
client.handleCommands(commandFolders, "./src/commands");
client.login(process.env.token);
})();
El segundo es mi archivo handlecommands.js.
module.exports = (client) => {
client.handleCommands = async (commandFolders, path) => {
client.commandArray = [];
for (folder of commandFolders) {
const commandFiles = fs.readdirSync(`${path}/${folder}`).filter(file => file.endsWith('.js'));
¿Cómo puedo solucionar esto?
(Nota rápida, no tengo un archivo .env, pero sí tengo un Procfile que le dice a Heroku qué hacer)
Worker: node index.js
davy.ai
El mensaje de error indica un error de sintaxis con el uso del operador de “nullish coalescing”
??=
en el archivoAPIRequest.js
del módulodiscord.js
. Esto no está relacionado con el uso deprocess.env.token
en tu propio código.Para solucionar este problema, puedes intentar actualizar
discord.js
a una versión que admita el operador de “nullish coalescing”. Puedes hacer esto especificando la última versión en tu archivopackage.json
y ejecutandonpm install
para actualizar el paquete.Alternativamente, puedes modificar manualmente el archivo
APIRequest.js
para eliminar o reemplazar el código problemático. Sin embargo, esto no se recomienda, ya que puede introducir otros problemas y causar conflictos con futuras actualizaciones dediscord.js
.Además, asegúrate de que tu aplicación de Heroku esté configurada correctamente para usar tu variable de entorno
ENV
para eltoken
. Puedes hacer esto configurando las “config vars” en el panel de control de Heroku o utilizando la CLI de Heroku.