学习节点 - 找不到库

时间:2016-06-24 23:49:16

标签: node.js

我正在尝试使用库运行带有示例的节点: http://bitcoinjs.org/

安装后我通过节点repl运行代码(我通过从终端运行'node'来启动repl):

var keyPair = bitcoin.ECPair.makeRandom()

但收到错误:

ReferenceError: bitcoin is not defined
    at repl:1:15
    at REPLServer.defaultEval (repl.js:262:27)
    at bound (domain.js:287:14)
    at REPLServer.runBound [as eval] (domain.js:300:12)
    at REPLServer.<anonymous> (repl.js:431:12)
    at emitOne (events.js:82:20)
    at REPLServer.emit (events.js:169:7)
    at REPLServer.Interface._onLine (readline.js:211:10)
    at REPLServer.Interface._line (readline.js:550:8)
    at REPLServer.Interface._ttyWrite (readline.js:827:14)

在运行节点repl之前,我是否需要比特币库?

1 个答案:

答案 0 :(得分:2)

是的,在NodeJS中,您需要在使用之前将所有模块导入为变量。在您的实例中,您可以这样做:

var bitcoin = require('bitcoinjs-lib');
...
var keyPair = bitcoin.ECPair.makeRandom()

编辑::快速说明“将所有模块导入为变量”的含义:NodeJS有一个简单的模块加载系统。 'require'语句可以从全局或本地包中导入,也可以从相对路径导入。或多或少它告诉Node运行时查找具有该语句提供的名称的JavaScript文件。在REPL中还要注意的一点是,如果模块没有作为全局模块安装,并且您不在包含'bitcoinjs-lib'包作为依赖项的目录中,那么您将无法满足它。