console.log
写入此数据类型-
<key1 : value1 , key2 : value2>
语法与对象或数组都不相似。那么这是什么数据类型?
这是复制方法。
安装 bsv 库
const bsv = require("bsv");
console.log(bsv.PrivateKey.fromRandom())
从节点终端
> bsv = require("bsv");
> bsv.PrivateKey.fromRandom()
答案 0 :(得分:2)
您看到的只是一个对象,特别是PrivateKey
库中的bsv
对象。 bsv
库在过时的Node.js版本中由console.log
登录时具有对象的自定义表示形式。
我终于能够复制您的输出,是从过时的Node.js副本中获取的:
<PrivateKey: a909d298d55c8fa3afdb641eb46e90cebad4f2d3f5ee0d4149e3bac16f12ee5b, network: livenet>
如上所述,它只是bsv
库中的PrivateKey
对象。您看到的原因是bsv
库使用了Node.js早已弃用的功能:Node.js的console.log
用于查找inspect
方法如果存在,则将调用该方法以获取要记录的对象的字符串表示形式。 bsv
在inspect
上有一个PrivateKey
方法,当前位于line 372(当然,该行号会随着时间而变化)。
您只会在(略)过时的Node.js副本中看到此内容。我偶然发现了该解决方案,因为我在使用v10.20.1的CodeSandbox上进行了尝试。此有用的消息就在CodeSandbox中的输出之后:
(节点:887)[DEP0079]弃用警告:不建议通过.inspect()对对象进行自定义检查功能
此后,我通过安装Node.js v10.20.1在本地复制了该文件。
使用up-to-date copy of Node.js(在我撰写本文时,v12.16.3是当前的LTS,v14.1.0是当前的版本),Node.js不再寻找或使用inspect
方法,因此您将看到Node.js的标准对象输出,如下所示:
PrivateKey { bn: BN { negative: 0, words: [ 66428877, 21624768, 45502785, 19604474, 35981886, 10091365, 29744843, 24740201, 15504496, 1628002, 0 ], length: 10, red: null }, compressed: true, network: Network { name: 'livenet', alias: 'mainnet', pubkeyhash: 0, privatekey: 128, scripthash: 5, xpubkey: 76067358, xprivkey: 76066276, cashAddrPrefix: 'bitcoincash', cashAddrPrefixArray: [ 2, 9, 20, 3, 15, 9, 14, 3, 1, 19, 8 ], networkMagic: <Buffer e3 e1 f3 e8>, port: 8333, dnsSeeds: [ 'seed.bitcoinsv.org', 'seed.bitcoinunlimited.info' ] }, publicKey: [Getter] }
因此,再次:它只是一个对象,由bsv
库以非标准格式显示。