Entonces, tengo un comando que debería enviar un hecho aleatorio y traducirlo del inglés al ucraniano, pero en lugar de obtener un hecho aleatorio, solo muestra [object Object] . Aquí está mi código, estoy en discord.js v13.
const { MessageEmbed } = require('discord.js'); const fetch = require('node-fetch'); const translate = require('@iamtraction/google-translate'); module.exports = { name: 'fact', description: 'Випадковий факт', category: 'Fun', async run({ interaction, bot }) { const response = await fetch('https://uselessfacts.jsph.pl/random.json?language=en'); await response.json().then(async res => { const translated = await translate(res, { to: 'uk' }); interaction.reply({ embeds: [new MessageEmbed().setTitle('Факт').setDescription(translated.text).setColor('RANDOM')] }); }); } };Es porque la API devuelve un objeto y lo convierte implícitamente en una cadena. Este objeto tiene una propiedad de text , por lo que debe usar await translate(res.text, { to: 'uk' }) .
Además, no debe mezclar then s con async/await. Solo elige uno:
const { MessageEmbed } = require('discord.js'); const fetch = require('node-fetch'); const translate = require('@iamtraction/google-translate'); module.exports = { name: 'fact', description: 'Випадковий факт', category: 'Fun', async run({ interaction, bot }) { const response = await fetch( 'https://uselessfacts.jsph.pl/random.json?language=en', ); const { text } = await response.json(); const translated = await translate(text, { to: 'uk' }); interaction.reply({ embeds: [ new MessageEmbed() .setTitle('Факт') .setDescription(translated.text) .setColor('RANDOM'), ], }); }, };