Discord JS v12 函数问题(我的函数没有被正确识别)

Posted

技术标签:

【中文标题】Discord JS v12 函数问题(我的函数没有被正确识别)【英文标题】:Discord JS v12 Function Problem (My function is not getting recognized properly) 【发布时间】:2021-11-14 21:42:08 【问题描述】:

我在导入/编写将货币 A 计算为货币 B 的函数时遇到问题。问题是该函数未被正确识别。 我的功能:

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;

使用函数的类:

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(`$inputAmountRMB = $amountEUR€`)
        .setFooter("© CSGO Library")
    message.channel.send(embed);

    convertRMB(inputAmount);

;

module.exports.help = 
    name: `rmb`

我得到的错误: "TypeError: convertRMB 不是函数"

【问题讨论】:

【参考方案1】:

正如错误所说,“convertRMB”不是函数:它是文件convertRMB.js 的导出对象。您将函数 convertRMB() 导出为 module.export 的函数,或者更清楚地说,与以下内容相同:

module.export.convertRMB = function (input) ...;

要获得你想要的,也就是将函数导出为匿名函数,你应该这样做:

module.exports = function (input) ...;

或者,使用您的代码,您可以使用您拥有的导出对象:

module.exports.run = async (bot, message, args) => 
    var inputAmount = args.join(' ');

    const amountEUR = convertRMB.convertRMB(inputAmount);

    const embed = new Discord.MessageEmbed()
        .setDescription(`$inputAmountRMB = $amountEUR€`)
        .setFooter("© CSGO Library")
    message.channel.send(embed);

    convertRMB.convertRMB(inputAmount);

;

Here 你可以找到一些有用的例子来更好地理解module.export 的动态。

【讨论】:

以上是关于Discord JS v12 函数问题(我的函数没有被正确识别)的主要内容,如果未能解决你的问题,请参考以下文章

Broadcast Dispatcher .resume() 函数 Discord JS v12 的问题

discord.js v12 中的 TempMute

需要帮助将 Bot 更新到 Discord.js v12

discord.js V12,我的命令[重复]

Discord.js v12 角色查询

如何定位文件 discord.js v12?