我正在尝试实现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中,然后在命令行中运行它。
答案 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');
应该解决您的问题。