bal 不是函数 (DISCORD.js)
Posted
技术标签:
【中文标题】bal 不是函数 (DISCORD.js)【英文标题】:bal is not a fuction (DISCORD.js) 【发布时间】:2020-01-22 17:09:52 【问题描述】:我一直在尝试在命令处理程序上实现复杂的代码,但随后我收到一条错误消息:
TypeError: bal is not a function
at Object.execute (C:\Users\tom\Documents\TJ\bot\commands\uwu uwubon.js:17:7)
at Client.client.on.message (C:\Users\tom\Documents\TJ\bot\index.js:153:11)
at Client.emit (events.js:198:13)
at MessageCreateHandler.handle (C:\Users\tom\Documents\TJ\bot\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
at WebSocketPacketManager.handle (C:\Users\tom\Documents\TJ\bot\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:105:65)
at WebSocketConnection.onPacket (C:\Users\tom\Documents\TJ\bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (C:\Users\tom\Documents\TJ\bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
at WebSocket.onMessage (C:\Users\tom\Documents\TJ\bot\node_modules\ws\lib\event-target.js:120:16)
at WebSocket.emit (events.js:198:13)
at Receiver.receiverOnMessage (C:\Users\tom\Documents\TJ\bot\node_modules\ws\lib\websocket.js:789:20)
老实说,我对 javascript 了解不多,因此我很难单独解决问题。我尝试了各种方法来解决这个问题,从在 var、let 和 const 之间进行试验,到完全改变代码的组成,但都无济于事。
如果你想知道我的代码是什么样子的,这里是:
const Discord = require('discord.js')
module.exports =
name: 'uwubon',
colldown: 3,
guildOnly: false,
aliases: [],
rank: 1,
description: '',
execute(message, args)
var bal = require('../db/uwus.json')
let uwuval = 1000
let menuser = message.guild.member(message.mentions.users.first() || message.guild.member.get(args[0]));
let curuwu = bal[message.guild.member(message.mentions.users.first() || message.guild.member.get(args[0])).uwus]
if (message.author.id == 335562919364263938)
bal(menuser).uwus = curuwu + uwuval
else return message.reply('You are not eligible for that command!')
,
;
PS:对于那些想知道的人,是的,我确实重新发布了这个,因为我不小心使用了不同版本的命令代码。
【问题讨论】:
var bal = require('../db/uwus.json')
...好吧,bal
绝对不是函数,不能再多说了...看来您是要输入bal[menuser].uwus = curuwu + uwuval
您似乎将 bal
设置为 json 文件,但随后将其用作函数。
@Gavin 该文件是一个 .js 文件,如此处所示imgur.com/a/HIUly6o
@JaromandaX 我需要一种定义 bal 的方法,因为它位于与我的主 js 文件不同的 js 文件中。
您已经定义了 bal ...它是 var bal = require('../db/uwus.json')
...但看起来您仍然想输入 bal[menuser].uwus = curuwu + uwuval
,因为您无法为函数的结果赋值,因为这没有任何意义 - 你有没有尝试过?
【参考方案1】:
bal 不是一个函数,所以你不应该使用()
。当您尝试从 json 文件中提取数据时,它是一个对象。为了访问对象的数据,您需要将()
替换为[]
。所以第 17 行的 bal(menuser)
将是 bal[menuser]
。
【讨论】:
试过了,但后来又出现了另一个错误,可以看到here以上是关于bal 不是函数 (DISCORD.js)的主要内容,如果未能解决你的问题,请参考以下文章
client.startTyping 不是函数 (Discord.JS)
Discord.js 13 channel.join 不是函数
Discord.js:message.guild.channels.forEach 不是函数