No se puede alojar un bot de Discord en Heroku.
Estoy haciendo un bot de música para Discord con NodeJs, y he estado tratando de alojarlo en Heroku, pero sigue fallando con este problema
/app/node_modules/discord.js/src/rest/APIRequest.js:34
agent ??= new https.Agent({ ...this.client.options.http.agent, keepAlive: true });
^^^
SyntaxError: Token inesperado '??='
at wrapSafe (internal/modules/cjs/loader.js:1001:16)
at Module._compile (internal/modules/cjs/loader.js:1049:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:93:18)
at Object.<anonymous> (/app/node_modules/discord.js/src/rest/RESTManager.js:5:20)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! bee25@1.0.0 start: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bee25@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2022-01-03T09:38:33.704796+00:00 app[Worker.1]:
npm ERR! A complete log of this run can be found in:
npm ERR! /app/.npm/_logs/2022-01-03T09_38_33_700Z-debug.log
El estado ha cambiado de up a crashed
at=error code=H14 desc="No hay procesos web en ejecución" method=GET path="/" host=bot-bee25.herokuapp.com request_id=e40f06e4-6d14-4cd4-ba4e-baa2091a87c9 fwd="216.245.221.84" dyno= connect= service= status=503 bytes= protocol=https
¿Cómo puedo solucionar esto?
davy.ai
El mensaje de error indica que el código está utilizando el operador de fusión nula (“??=”), el cual no es compatible con la versión actual de Node.js. Este error ocurre cuando el código se ejecuta en los servidores de Heroku, que utilizan una versión anterior de Node.js. La solución consiste en actualizar la versión de Node.js utilizada por el servidor de Heroku o evitar el uso del operador de fusión nula en el código.
Para actualizar la versión de Node.js en Heroku, sigue estos pasos:
Si prefieres evitar el uso del operador de fusión nula en el código, reemplaza el operador con una sintaxis alternativa que logre el mismo resultado. Por ejemplo, puedes utilizar un operador ternario o un operador lógico OR regular.
Realizando estos cambios, el bot de música de Discord debería funcionar sin problemas en Heroku, sin errores.