Javascript切换;试图从另一个函数访问开关盒内的变量

时间:2018-02-27 12:13:41

标签: javascript node.js

我有这个相当大的switch案例,它是我想要匹配的一组以太坊地址,并将名称输出到我可以在不同的.js文件中使用的变量。目前我只是在cli中的node中运行代码。

由于目前有16个唯一的名称/地址以及即将推出的更多,我想将此语句/功能分开保存在一个单独的文件中。我已尝试过很多东西来访问case:中的变量集,但没有成功。下面是我想要做的一个示例,并希望有人会告诉我这是可能的,因为除了您在每个网站上看到的基本教程之外,我是非常新的,我可以使用一些清晰度。

web3.eth.getBlock('latest').then(function(b){
    miners = b.miner;
    console.log(miners);
});


switch (miners) {
    case "0xE8DDc5c7f5139ffghfghfghf9c0104fDf5E987ACA":
        miner = "Miner Name 1";
        return miner;
        break;
    case "0x82e4e61e7f5139ff0a4157gfhgffgh7eF42294c248":
        miner = "Miner Name 2";
        return miner;
        break;
 }

现在这只是我拥有的两个街区,但你得到了图片。通过在函数中包装所有内容(包括用于获取当前矿工的web3代码),我能够得到我想要的东西。在函数中包装console.log()并且在范围内,我能够匹配案例没有问题,但在尝试访问miner变量时,在另一个文件中它始终是undefined

我希望的是不将开关包装在一个函数中,并且能够从另一个miners文件调用.js开关并将miner变量设置为矿工的名字。

我很感激任何帮助,谢谢你提前甚至一些指导。我整晚都在尝试不同的方法来做这件事。我对如何处理这么多案例陈述的其他建议持开放态度。我正在尝试JSON对象,2d数组,但似乎每个人都有相同的密钥会出现问题。

1 个答案:

答案 0 :(得分:0)

您必须导出变量才能在其他模块中访问:

exports.miner = miner;

然后在另一个模块中

让minerModule = require(' ./ minermodule');

让miner = minerModule.miner;