javascript - 将变量导出到其他文件 discordjs
问题描述
我更改了命令处理程序,不再从 profileData 中导出任何内容(以前是命令处理程序文件)。该文件正在检查他们的个人资料并将数据保存在 profileData 中,或者如果他们没有,则为他们创建一个。我想导出 profileData 以在其他文件中使用,而不是在每个命令中查询。我怎样才能做到这一点。我已经尝试将 module.exports 和 exports.profileData = profileData 放在所有地方,但我只是迷失了如何做到这一点。任何帮助,将不胜感激。
profileData-
const profileModel = require("../../models/profileSchema");
module.exports = (client) => {
client.on("message", async (message) => {
const prefix = 's!'
if (!message.content.startsWith(prefix) || message.author.bot) return;
try {
const profileData = await profileModel.findOne({ userID: message.author.id });
if (!profileData) {
let profile = await profileModel.create({
userID: message.author.id,
serverID: message.guild.id,
coins: 10,
bank: 0,
});
profile.save();
}
} catch (err) {
console.log(err);
}
})
}
module.exports.config = {
displayName: 'Profile Data',
dbName: 'PROFILEDATA',
loadDBFirst: true
}
平衡-
const { MessageEmbed } = require("discord.js");
const { profileData } = require("../../Features/client/profileData");
module.exports = {
name: "balance",
aliases: ["bal"],
category: "Economy",
cooldown: "20s",
permissions: ["ADMINISTRATOR"],
maxArgs: 0,
description: "Check your wallet and bank balance!",
execute: async ({ message, client }) => {
let balPlaceholder = "'s balance";
const BalEmbed = new MessageEmbed()
.setColor("#0bbffc")
.setAuthor("Saoul 2")
.setTitle(`${message.author.username}${balPlaceholder}`)
.addFields(
{ name: " Wallet:", value: `${profileData.coins}`, inline: true },
{ name: " Bank:", value: `${profileData.bank}`, inline: true }
)
.setTimestamp()
.setFooter(
`Command Requested By ${message.author.tag}`,
client.user.displayAvatarURL()
);
message.channel.send(BalEmbed);
},
};
解决方案
如果我理解正确:您想导出 profileData,如果找不到,请创建一个新的配置文件并使用它。以下代码段可能会解决您的问题。
const profileModel = require("../../models/profileSchema");
let data = getData(client);
exports.data = data;
async function getData(client) {
client.on("message", async(message) => {
const prefix = 's!'
if (!message.content.startsWith(prefix) || message.author.bot) return;
try {
const profileData = await profileModel.findOne({
userID: message.author.id
});
if (!profileData) {
let profile = await profileModel.create({
userID: message.author.id,
serverID: message.guild.id,
coins: 10,
bank: 0,
});
profile.save();
return profile;
} else {
return profileData;
}
} catch (err) {
console.log(err);
}
})
}
module.exports.config = {
displayName: 'Profile Data',
dbName: 'PROFILEDATA',
loadDBFirst: true
}
推荐阅读
- reactjs - 如何动态使用 map 函数来挂钩 useState 属性
- exception - purescript - 对抛出异常的函数进行建模
- numpy - 尽管安装正确,但导入 Numpy 时出错的原因是什么
- r - 对于数据框中的每一行,打印包含小于或等于 x 的值的列名并计算剩余值,直到下一个最大值
- pytest - tox 运行错误的 Python 版本
- c# - C# LINQ 或 for 循环如何从数据库中获取数据源?
- r - 从另一个包含基于列的分层分类法创建数据框
- google-apps-script - 更改插件的可见性(Google 表格)
- r - quanteda (R) 中的 kwic 不能识别正则表达式模式中的多个单词
- properties - 需要构建 log4j2 所需的 jar 文件