实现eccjs库时出错

时间:2016-10-11 06:26:59

标签: javascript node.js

我正在尝试实现NodeJS的这个ecc库, https://github.com/jpillora/eccjs

我正在尝试运行的文件是

https://github.com/jpillora/eccjs/blob/gh-pages/examples/simple.js

问题是,当我尝试使用node simple.js命令运行文件时,出现以下错误,

eccjs-gh-pages/examples/simple.js:31
var keys = ecc.generate(ecc.ENC_DEC);
               ^
TypeError: Object function ecc() {
  return new ECC();
} has no method 'generate'
    at Object.<anonymous> (/home/pi/Project/eccjs-gh-pages/examples/simple.js:31:16)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

但是,当我使用html文件(https://github.com/jpillora/eccjs/blob/gh-pages/index.html)运行相同的文件时,如下所示,

  <script src="examples/simple.js"></script>

我可以在Chrome控制台中看到输出。

有人可以告诉我为什么文件不能使用命令行工作但通过浏览器执行时工作正常吗?无论如何都要这样做?

修改 我已经注释掉了以下这一行,

var ecc = require('../dist/0.1/ecc');

在example.js中,然后在命令行中运行它。

3 个答案:

答案 0 :(得分:0)

您需要从js文件中导入generate方法。

将import语句添加到指向支持此generate方法的模块的文件的to。

查看该文件,目前已注释掉:

// var ecc = require('../dist/0.1/ecc');

尝试取消评论。

注意,当在HTML中用作JS文件时,必须对此进行注释。

修改 刚看到你的变化。也许你正在使用一个过时的ecc模块。由于错误状态,ecc文件中没有generate方法。

或者,使用npm install eccjs通过npm安装最新的ecc,并使用var ecc = require('../dist/0.1/ecc');替换var ecc = require('eccjs');

答案 1 :(得分:0)

添加

var ecc = require('eccjs');

npm install eccjs

然后尝试运行

这意味着eccjs模块在npm存储库中发布,似乎我们需要模块generate方法可用。

答案 2 :(得分:0)

,因为generate中没有https://github.com/jpillora/eccjs/blob/gh-pages/dist/0.1/ecc.js方法,而https://github.com/jpillora/eccjs/blob/gh-pages/dist/0.3/ecc.js中有一个方法

替换,

var ecc = require('../dist/0.1/ecc');

用,

var ecc = require('../dist/0.3/ecc');

应该解决您的问题。