Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

164
Views
Discord.js isnt sending the embed due to non-empty string error
const { SlashCommandBuilder } = require('@discordjs/builders')
const discord = require('discord.js')
const open = require('openweather-api-node');
module.exports = {
    data: new SlashCommandBuilder()
        .setName('weather')
        .setDescription('Shows the Weather condition of a place')
        .addStringOption(option =>
            option.setName('city')
                .setDescription('Name of the city')
                .setRequired(true)),

    async execute(Discord, client, interaction) {


        let city = interaction.options.getString('city');

        let weather = new open({
            key: process.env.WEATHER,

            units: 'metric'
        })

        weather.setLanguage('en')
     let info = await   weather.getCurrent({ locationName: city }) 


      if(!info) return interaction.reply({content:"Oops "})
            //location 
            var lon = info.lon.toString()
            var lat = info.lat.toString()
            let Timezone = info.timezone

            //Temperature
            var temp =  info.weather.temp.cur.toString()
            let feel_like = info.weather.feels_like.cur
            let min = info.weather.temp.min
            let max =info.weather.temp.max

            //air condition
            let pressure = info.weather.pressure
            let humidity = info.weather.humidity + '%'
            let wind = info.weather.wind.speed + 'km/h'

            //description

            let sky = info.weather.description
            let status = info.weather.main

        console.log(temp)
        console.log(lon)
        console.log(lat)

            let new1 = new discord.MessageEmbed()
            new1.setTitle(city + `'s Weather`)
            new1.setDescription('bruh pls work')
            new1.setColor('#0099ff')
            new1.addFields('**Location**', `Latitude:`+ lat,true)
            new1.addFields('**Temperature**', `${temp}℃`,true)
            new1.setTimestamp()
            new1.setFooter({ text: 'Information by Open-Weather' })

            interaction.reply({embeds:[new1]})



         




    }
}

So this is my code the temp,lan,lat variables were number but i changed them into string and even checked with the typeof method It gave me a string

But still i'm facing out this error called RangeError [EMBED_FIELD_NAME]: MessageEmbed field names must be non-empty string

Please help me if you know whats the solution

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Try this format:

.addFields( 
    { name: 'string', value: 'string', inline: true }
)

For multiple:

.addFields( 
    { name: 'string', value: 'string' } 
    { name: 'string', value: 'string' } 
)

Or refer to the other answer.

about 4 years ago · Juan Pablo Isaza Report

0

You're trying to add one field using Embed#addFields. Embed#addFields takes in an 25 parameters of EmbedFieldData. The correct syntax using Embed#addFields would be:

foo.addFields(
   { name: 'foo', value: 'bar' }, 
   { name: 'egg', value: 'spam' }
)

You can also use Embed#addField to add one field.

foo.addField('bar', 'baz')
about 4 years ago · Juan Pablo Isaza Report

0

        let new1 = new discord.MessageEmbed()
        new1.setTitle(city + `'s Weather`)
        new1.setDescription('bruh pls work')
        new1.setColor('#0099ff')
        new1.addFields('**Location**', `Latitude:`+ lat,true)
        new1.addFields('**Temperature**', `${temp}℃`,true)
        new1.setTimestamp()
        new1.setFooter({ text: 'Information by Open-Weather' })

        interaction.reply({embeds:[new1]})

replace with:

        let new1 = new discord.MessageEmbed()
        new1.setTitle(city + `'s Weather`)
        new1.setDescription('bruh pls work')
        new1.setColor('#0099ff')
        new1.addFields( 
            {name:'**Location**', value: `Latitude:+ lat`, inline: true },
            {name:'**Temperature**', value: `${temp}℃`, inline: true },
        )
        new1.setTimestamp()
        new1.setFooter({ text: 'Information by Open-Weather' })

        interaction.reply({embeds:[new1]})
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!