我只是问了这个问题,我认为它已经解决了,但不是。.因此,再次出现。.为双重发言道歉..
我有一个文件:block.js:
class Block{
constructor(timeStamp, lastBlockHash, thisBlockData, thisBlockHash){
this.timeStamp = timeStamp;
this.lastBlockHash = lastBlockHash;
this.thisBlockData = thisBlockData;
this.thisBlockHash = thisBlockHash;
}
static genesis(){
return new Block(Date.now(), "---", "This is the genesis block", "hash of the genesis");
}
}
另一个文件:blockchain.js:
const Block = require('./block');
class BlockChain{
constructor() {
this.chain = Block.genesis();
}
}
module.exports = {BlockChain};
最后是一个测试文件test.js:
const BlockChain = require("./blockchain.js");
let blockChainInstance = new BlockChain();
console.log(blockChainInstance.chain);
test.js文件的输出显示“ undefined”代替了创世块。.自从早上以来,这对我来说是个谜。.如果有人可以为我解决这个问题,我将非常感激。
干杯,
答案 0 :(得分:2)
不确定这是否是导致问题的根本原因,但是在 blockchain.js 中,您基本上将类导出为
module.exports = {
BlockChain: BlockChain
};
因此,在 test.js 中,您应该使用
导入类const { BlockChain } = require('./blockchain.js');
答案 1 :(得分:0)
您必须导出Block类:
module.exports = class Block { /*...*/ };
与BlockChain
类相同。