我有这个相当大的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数组,但似乎每个人都有相同的密钥会出现问题。
答案 0 :(得分:0)
您必须导出变量才能在其他模块中访问:
exports.miner = miner;
然后在另一个模块中
让minerModule = require(' ./ minermodule');
让miner = minerModule.miner;