неопределенный возврат из экземпляра класса - Java Script - PullRequest
0 голосов
/ 18 сентября 2018

Я только что задал этот вопрос, и я подумал, что он был решен, но это не так .. вот еще раз .. извиняюсь за двойной пост ..

У меня есть файл: 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" вместо блока генезиса ... это было загадкой для меня с утра ... и я был бы безмерно благодарен, если кто-нибудь может решить эту проблему для меня ..

Cheers, al

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Не уверен, что это основная причина вашей проблемы, но в blockchain.js вы в основном экспортируете класс как

module.exports = {
    BlockChain: BlockChain
};

И так, в тесте.js вы должны импортировать класс, используя

const { BlockChain } = require('./blockchain.js');
0 голосов
/ 18 сентября 2018

Вы должны экспортировать класс Block:

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

то же самое для класса BlockChain.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...