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)
})