Tengo un problema al importar/escribir una función que calcula la moneda A en la moneda B. El problema es que la función no se reconoce correctamente. Mi función:
async function convertRMB(inputAmount) { const fetch = require("node-fetch"); try { const responseRMB = await fetch('http://www.floatrates.com/daily/cny.json'); const dataRMB = responseRMB.json(); const rateEUR = dataRMB.eur.rate const rateUSD = dataRMB.usd.rate const RMBinEUR = Number(inputAmount) * Number(rateEUR) const RMBinUSD = Number(inputAmount) * Number(rateUSD) return RMBinEUR; } catch (err) { console.log(err) } } module.exports = {convertRMB};La clase estoy usando la función en:
const Discord = require('discord.js'); const convertRMB = require('../functions/convertRMB'); module.exports.run = async (bot, message, args) => { var inputAmount = args.join(' '); const amountEUR = convertRMB(inputAmount); const embed = new Discord.MessageEmbed() .setDescription(`${inputAmount}RMB = ${amountEUR}€`) .setFooter("© CSGO Library") message.channel.send(embed); convertRMB(inputAmount); }; module.exports.help = { name: `rmb` }El error que estoy recibiendo: "TypeError: convertRMB no es una función"
Como dice el error, "convertRMB" no es una función: es el objeto de exportación de su archivo convertRMB.js . Exportaste la función convertRMB() como una función de module.export , o para ser más claros, es lo mismo que:
module.export.convertRMB = function (input) {...};Para obtener lo que quieres, es decir, exportar la función como anónima, debes hacer algo como esto:
module.exports = function (input) {...};O, usando su código, puede usar el objeto de exportación que tiene:
module.exports.run = async (bot, message, args) => { var inputAmount = args.join(' '); const amountEUR = convertRMB.convertRMB(inputAmount); const embed = new Discord.MessageEmbed() .setDescription(`${inputAmount}RMB = ${amountEUR}€`) .setFooter("© CSGO Library") message.channel.send(embed); convertRMB.convertRMB(inputAmount); }; Aquí puede encontrar algunos ejemplos útiles para comprender mejor la dinámica module.export .