2016-10-11 88 views
1

我正在嘗試執行這個ecc庫的NodeJS, https://github.com/jpillora/eccjs執行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

因爲在https://github.com/jpillora/eccjs/blob/gh-pages/dist/0.1/ecc.js沒有generate方法,同時還有一個在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'); 

應該解決您的問題。

0

您需要從它的js文件中導入generate方法。

將一個import語句添加到指向支持此生成方法的模塊的文件的to處。

看文件,這是目前註釋掉:

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

嘗試取消註釋它。

請注意,在HTML中作爲JS文件使用時,必須對其進行註釋。

編輯 剛剛看到您的更改。也許你正在使用過時的ecc模塊。由於錯誤狀態,ecc文件中沒有generate方法。

另外,安裝使用npm install eccjs和更換var ecc = require('../dist/0.1/ecc');通過NPM最新的ECC與var ecc = require('eccjs');

0

添加

var ecc = require('eccjs'); 

npm install eccjs

然後嘗試運行

這意味着eccjs模塊發佈在npm版本庫中,看起來好像我們需要模塊e generate方法可用。