Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一种在discord机器人之间共享变量的方法?_Javascript_Node.js - Fatal编程技术网

Javascript 一种在discord机器人之间共享变量的方法?

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

我有两个机器人用作D&D discord服务器的店主。我们遇到的问题是,每个机器人将分别跟踪与每个用户ID相关的金额。我试图设置它,使它们共享来自外部文件的相同常量,但调用它似乎将其作为变量而不是对象导入

我的主文件;相关部分

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