2016-05-19 8 views
0

他にも関連する回答がありますが、プロトタイプベースのアプローチを使用しているため、私の質問は異なります。ノードjsモジュールにパラメータを渡します

Authorization.js

var Authorization = function() {}; 

Authorization.prototype.requestPermissions = function(access_token, authToken, publicationId) { 

}; 

Authorization.prototype.verifyRoles = function(access_token, authToken, roles, permissions) { 

}; 

module.exports = new Authorization(); 

App.js

authorization = require("../../authorizationService/Authorization"); 
authorization.requestPermissions("abcd", "1234", "pub1234"); 
authorization.verifyRoles("abcd", "1234", "param1", "param2"); 

お知らせaccess_tokenはを繰り返し使用の問題は、各機能におけるauthTokenのと私の問題が通過している「ABCD "、" 1234 "を繰り返し呼び出します。

理想的には、access_tokenとauthTokenを一度モジュールに渡して、それ以降の各呼び出しで引き続き使用したいと思います。

私はモジュールをパラメータ化したいと思っています。おそらく、モジュールのプロトタイプに基づいてコンストラクタにaccess_tokenとauthTokenを渡しています。モジュールの書き換えを助言してください。

答えて

2

があなたの代わりに、インスタンスのモジュールからコンストラクタを返す必要があります:

Authorization.js

var Authorization = function(access_token, authToken) { 
    this.access_token = access_token; 
    this.authToken = authToken 
}; 

Authorization.prototype.requestPermissions = function(publicationId) { 

}; 

Authorization.prototype.verifyRoles = function(roles, permissions) { 

}; 

module.exports = Authorization; 

App.js

Authorization = require("../../authorizationService/Authorization"); 
authorization = new Authorization("abcd", "1234"); 
authorization.requestPermissions("pub1234"); 
authorization.verifyRoles("param1", "param2"); 
+0

素敵な、1つのライナーを引くことが可能です'authorization = new require(" ../../ authorizationService/Authorization ")(accessToken、authToken);' – user2727195

+0

これはまったく可能です。 –

+0

が問題を抱えていて、ユニットテストを実行していますが、 – user2727195

関連する問題