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)

“fn 不是函数” discord.js

Discord.js 13 channel.join 不是函数

Discord.js:message.guild.channels.forEach 不是函数

Discord.js Bot 赠品命令:.array() 不是函数

discord.js-commando TypeError:RichEmbed 不是构造函数