I am using discord.js and I have a code where if someone votes for my bot on https://top.gg the bot will send a message, but it got this error
Web process failed to bind to $PORT within 60 seconds of launch
Here is my code:
const Discord = require('discord.js') const bot = new Discord.Client(); const DBL = require('dblapi.js'); const dbl = new DBL(process.env.DBTOKEN, { webhookPort: 5000, webhookAuth: 'password' }, bot) dbl.webhook.on('ready', hook => { console.log(`Webhook running at http://${hook.hostname}:${hook.port}${hook.path}`); }); dbl.webhook.on('vote', vote => { let embed = new Discord.MessageEmbed() .setTitle('A user just upvoted!') .setDescription(`Thank you **${vote.user.tag}** for voting me!`) .setColor('FF000') .setThumbnail(vote.user.displayAvatarURL()) let votechannel = bot.channels.cache.find(x => x.id === '775360008786280468') votechannel.send(embed) })
Please help me that would be very appreciated
Advertisement
Answer
Heroku changes the Port that runs Node Application from time to time. Try changing your webhook port to process.env.PORT
. Check the code below.
const Discord = require('discord.js') const bot = new Discord.Client(); const DBL = require('dblapi.js'); const dbl = new DBL(process.env.DBTOKEN, { webhookPort: process.env.PORT || 5000, webhookAuth: 'password' }, bot) dbl.webhook.on('ready', hook => { console.log(`Webhook running at http://${hook.hostname}:${hook.port}${hook.path}`); }); dbl.webhook.on('vote', vote => { let embed = new Discord.MessageEmbed() .setTitle('A user just upvoted!') .setDescription(`Thank you **${vote.user.tag}** for voting me!`) .setColor('FF000') .setThumbnail(vote.user.displayAvatarURL()) let votechannel = bot.channels.cache.find(x => x.id === '775360008786280468') votechannel.send(embed) })