Javascript 一种在discord机器人之间共享变量的方法?
我有两个机器人用作D&D discord服务器的店主。我们遇到的问题是,每个机器人将分别跟踪与每个用户ID相关的金额。我试图设置它,使它们共享来自外部文件的相同常量,但调用它似乎将其作为变量而不是对象导入 我的主文件;相关部分Javascript 一种在discord机器人之间共享变量的方法?,javascript,node.js,Javascript,Node.js,我有两个机器人用作D&D discord服务器的店主。我们遇到的问题是,每个机器人将分别跟踪与每个用户ID相关的金额。我试图设置它,使它们共享来自外部文件的相同常量,但调用它似乎将其作为变量而不是对象导入 我的主文件;相关部分 const { SSL_OP_SSLEAY_080_CLIENT_DH_BUG } = require('constants'); const Discord = require('discord.js'); // Gets Discord Collection con
const { SSL_OP_SSLEAY_080_CLIENT_DH_BUG } = require('constants');
const Discord = require('discord.js');
// Gets Discord Collection
const client = new Discord.Client();
//Login into DiscordSS
const { Users, CurrencyShop, MonCurrencyShop} = require('./dbObjects');
const { Op,} = require('sequelize');
const currency = require('./../Purse');
const sequelize = require('./dbInit')
//Money
client.once('ready', async () => {
const storedBalances = await Users.findAll();
storedBalances.forEach(b => currency.set(b.user_id, b));
sequelize.sync
//syncing money
console.log('Tavernkeeper is at the bar')
});
//Notification of online status
const prefix = '+';
//Money stuff
Reflect.defineProperty(currency, 'add', {
/* eslint-disable-next-line func-name-matching */
value: async function add(id, amount) {
const user = currency.get(id);
if (user) {
user.balance += Number(amount);
return user.save();
}
const newUser = await Users.create({ user_id: id, balance: amount });
currency.set(id, newUser);
return newUser;
},
});
Reflect.defineProperty(currency, 'getBalance', {
/* eslint-disable-next-line func-name-matching */
value: function getBalance(id) {
const user = currency.get(id);
return user ? user.balance : 0;
},
和钱包文件,应该让机器人共享变量
const Discord = require('discord.js');
const currency = new Discord.Collection
以及我在节点上遇到的错误。
(节点:27588)未经处理的PromisejectionWarning:TypeError:currency.set不是函数
编辑;我尝试以不同的方式导入它,但得到了不同的错误
我试过了
async function importModule(){
try {
const currency = await import('./../Purse')
} catch (error) {
console.error('import failed')
}
}
我在非对象上调用了TypeError:Reflect.defineProperty