Discord JS v12导入汇率转换函数报错convertRMB不是函数问题
报错修复方案
1. 核心报错原因:模块导入导出格式不匹配
你在函数文件中是用对象包裹的方式导出函数:
module.exports = {convertRMB};
而调用文件中导入时没有做解构,此时拿到的convertRMB变量实际是{convertRMB: Function}这个对象,而非函数本身,调用对象自然会触发TypeError: convertRMB is not a function报错。
两种修复方案任选其一即可:
- 方案一:修改导入代码,用解构方式拿到函数
把调用文件的导入行改为:const { convertRMB } = require('../functions/convertRMB');
- 方案二:修改导出代码,直接导出函数本身
把函数文件的导出行改为:module.exports = convertRMB;
2. 导入问题修复后需要同步修正的异步逻辑错误
你的代码还有两处异步逻辑遗漏,修复导入问题后会立刻触发新报错,需要同步修改:
- 第一处:函数内部
responseRMB.json()是异步方法,你没有加await,拿到的dataRMB是Promise对象,无法直接读取eur、usd属性,需要修改为:const dataRMB = await responseRMB.json(); - 第二处:
convertRMB是async异步函数,调用后默认返回Promise对象,直接渲染到消息中会显示[object Promise]而非计算结果,调用时需要加await:const amountEUR = await convertRMB(inputAmount);
可选优化
可以新增输入校验逻辑,判断用户传入的inputAmount是否为合法数字,避免最终计算结果出现NaN的情况。
内容的提问来源于stack exchange,提问作者LUKΛS
相关产品推荐
相关产品推荐

