Я тестирую некоторые классы nodejs и для подробностей использую каталог модулей node. Но осмотреть было бы проще. Ниже приведен пример. Он не отображает все методы. Это просто говорится -

'[кошелек класса]'

Есть ли способ показать методы и дополнительную информацию о классе?

~/node_modules$ node
Welcome to Node.js v12.18.3.
Type ".help" for more information.
> const x=require('fabric-network')
undefined
> x
{
  Gateway: [class Gateway],
  Wallet: [class Wallet],
  Wallets: [class Wallets],
  IdentityProviderRegistry: [class IdentityProviderRegistry],
  HsmX509Provider: [class HsmX509Provider],
  DefaultCheckpointers: [class DefaultCheckpointers],
  DefaultEventHandlerStrategies: {
    MSPID_SCOPE_ALLFORTX: [Function],
    MSPID_SCOPE_ANYFORTX: [Function],
    NETWORK_SCOPE_ALLFORTX: [Function],
    NETWORK_SCOPE_ANYFORTX: [Function],
    NONE: [Function]
  },
  DefaultQueryHandlerStrategies: {
    MSPID_SCOPE_SINGLE: [Function],
    MSPID_SCOPE_ROUND_ROBIN: [Function]
  },
  TimeoutError: [class TimeoutError extends FabricError]
}

> x.Wallet
[class Wallet]
> util.inspect(x.Wallet)
'[class Wallet]'
1
Trevor Lee Oakley 5 Окт 2020 в 10:15

1 ответ

Лучший ответ

Вы можете использовать модуль util и метод inspect, чтобы погрузиться в методы и классы объекта. Здесь я установил showHidden в значение true, depth в значение 1 и color в значение true. Если задана глубина, равная null, он будет повторяться "полностью", показывая все уровни . Он вернет красочную строку, как показано ниже.

const x = require('fabric-network');
const util = require('util');
console.log(util.inspect(x, true, 10, true))

Выход

 {
  Gateway: [Function: Gateway] {
    [length]: 0,
    [prototype]: [Gateway],
    [name]: 'Gateway'
  },
  Wallet: [Function: Wallet] {
    [length]: 1,
    [prototype]: [Wallet],
    [name]: 'Wallet'
  },
  Wallets: [Function: Wallets] {
    [length]: 0,
    [prototype]: [Wallets],
    [newInMemoryWallet]: [AsyncFunction],
    [newFileSystemWallet]: [AsyncFunction],
    [newCouchDBWallet]: [AsyncFunction],
    [name]: 'Wallets'
  },
  IdentityProviderRegistry: [Function: IdentityProviderRegistry] {
    [length]: 0,
    [prototype]: [IdentityProviderRegistry],
    [name]: 'IdentityProviderRegistry'
  },
  HsmX509Provider: [Function: HsmX509Provider] {
    [length]: 0,
    [prototype]: [HsmX509Provider],
    [name]: 'HsmX509Provider'
  },
  DefaultCheckpointers: [Function: DefaultCheckpointers] {
    [length]: 0,
    [prototype]: [DefaultCheckpointers],
    [file]: [AsyncFunction],
    [name]: 'DefaultCheckpointers'
  },
  DefaultEventHandlerStrategies: {
    [__esModule]: true,
    MSPID_SCOPE_ALLFORTX: [Function],
    MSPID_SCOPE_ANYFORTX: [Function],
    NETWORK_SCOPE_ALLFORTX: [Function],
    NETWORK_SCOPE_ANYFORTX: [Function],
    NONE: [Function]
  },
  DefaultQueryHandlerStrategies: {
    [__esModule]: true,
    MSPID_SCOPE_SINGLE: [Function],
    MSPID_SCOPE_ROUND_ROBIN: [Function]
  },
  TimeoutError: [Function: TimeoutError] {
    [length]: 1,
    [prototype]: [TimeoutError],
    [name]: 'TimeoutError',
    stackTraceLimit: 10
  }
}
0
Mohammadreza Mirhajianmoghadam 6 Окт 2020 в 07:40