javascript - 如何将我的收集器数据添加到变量中并在文件外部使用它?
问题描述
相关问题:Discord.js
我只是想问一下,如何将我的收集器数据添加到变量中并在文件外部使用它,例如在 index.js 上使用它。我只想创建一个设置命令,当用户键入时-setup
,它会自动提出一些问题并将这些答案存储到变量中,并根据这些变量将这些变量添加到主文件中。
基本上我有三个问题:
1. 我如何向用户提出多个问题。
2. 如何将这些问题存储在变量中并在文件外部使用它
3. 如果用户已完成设置,我该如何过滤。
我在做什么:我正在开发一个欢迎消息机器人,当我们将他添加到我们的服务器时它的作用是什么,管理员必须设置这个机器人来为您的服务器设置欢迎消息。管理员必须使用-setup 命令,这个-setup 命令有什么作用?这个命令添加了一堆问题,什么是频道 ID,你的消息是什么,你的邀请图片是什么等,在获得这些答案后,他将在他/她提供的频道中设置一条欢迎消息,这条消息将来自嵌入所以我必须从用户那里获得嵌入标题、头像、描述。
最后一个问题:我需要为此设置一个数据库吗?
解决方案
- 查看有关等待消息的 Discord.js 文档。您可以通过更改过滤器来等待来自特定用户的消息,以将发送命令的人与收到的消息进行比较。
- 获取您存储答案并使用的变量,该变量
JSON.stringify(variable)
会将其转换为文本,然后您可以使用fs 模块将其写入文件。
const fs = require('fs')
fs.writeFile('/Users/joe/test.json', variable, err => {
if (err) {
console.error(err)
return
}
//file written successfully
})
要从中读取,只需使用var answers = JSON.parse(fs.readFileSync('file', 'utf8'));
- 有很多方法可以做到这一点。如果您为每个用户存储一个文件,您只需检查是否存在具有用户/服务器 ID 的文件。
fs.stat('test.json', function(err, stat) {
if(err == null) {
console.log('File exists');
} else if(err.code === 'ENOENT') {
// file does not exist
fs.writeFile('log.txt', 'Some log\n');
} else {
console.log('Some other error: ', err.code);
}
});
你是否需要一个数据库真的取决于你的机器人的规模,我以前从来不需要数据库,但我不写主要的机器人。在某些时候,我建议研究如何使用一个。我在整个过程中也包含了更详细的解释和文档的链接,如果您感到困惑,请务必查看这些链接。
推荐阅读
- php - 如果没有二维数组,我的查询是否可以工作?
- c# - 返回委托函数 NSubstitute
- php - Mac 10.15 上的 php cli 在哪里记录错误
- c++ - C++中的静态函数
- javascript - 如何在 web 的 Material Components 中实现 Multi-Select
- ruby - 是什么阻止 RuboCop 修复所有可自动纠正的违规行为?
- html - 使用 CSHTML 进行自动完成的最简单方法是什么
- javascript - Electron Js - 主进程发生javascript错误
- javascript - 如何使用 JQuery 动态更新下拉列表?
- office-js - Visio Javascript API 加载失败。缺少 Microsoft.Office.WebExtension