类实例的未定义​​返回-Java脚本

时间:2018-09-18 13:40:50

标签: javascript node.js express

我只是问了这个问题,我认为它已经解决了,但不是。.因此,再次出现。.为双重发言道歉..

我有一个文件: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”代替了创世块。.自从早上以来,这对我来说是个谜。.如果有人可以为我解决这个问题,我将非常感激。

干杯,

2 个答案:

答案 0 :(得分:2)

不确定这是否是导致问题的根本原因,但是在 blockchain.js 中,您基本上将类导出为

module.exports = {
    BlockChain: BlockChain
};

因此,在 test.js 中,您应该使用

导入类
const { BlockChain } = require('./blockchain.js');

答案 1 :(得分:0)

您必须导出Block类:

  module.exports = class Block { /*...*/ };

BlockChain类相同。