【发布时间】:2020-04-02 23:01:36
【问题描述】:
按照有关命令处理的 Discord.js 教程 (https://discordjs.guide/command-handling/adding-features.html) 后,我找不到如何在所有文件中声明变量。
例如,这是我在 index.js 中所说的:
const Discord = require('discord.js');
const fs = require('fs');
const config = require('./config.json');
const client = new Discord.Client();
client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('./db.json')
const db = low(adapter)
const adapter2 = new FileSync('./tokens.json')
const tokens = low(adapter2)
const adapter3 = new FileSync('./usedTokens.json')
const used = low(adapter3)
const prefix = config.prefix;
const version = config.version;
如果我在 ./commands/command 中添加一个包含命令的文件,我必须重新声明之前在 index.js 中输入的所有变量:
module.exports = {
name: 'profile',
description: 'Checker les infos de son profil avec la commande !profile',
execute(message, args) {
//Déclaration de toute les variables
const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('./db.json')
const db = low(adapter)
const adapter2 = new FileSync('./tokens.json')
const tokens = low(adapter2)
const adapter3 = new FileSync('./usedTokens.json')
const used = low(adapter3)
const Discord = require('discord.js');
const version = config.version;
var config = require('../config.json');
我正在寻找一个解决方案,这样我就不必在每个新命令文件中重新声明所有内容...
【问题讨论】:
-
不相关,但对机器人使用
FileSync是个坏主意 - 在所有数据库操作期间,机器人将在等待文件 i/o 完成时冻结,无法执行任何进一步的命令。为了解决这个问题,你真的应该改用FileAsync
标签: javascript node.js discord.js