2016-05-19 2 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

хороший, можно вытащить один лайнер 'authorization = new require (" ../../ authorizationService/Authorization ") (accessToken, authToken);' – user2727195

+0

Да, это возможно. –

+0

имеет проблемы, и я выполняю модульные тесты, работал с двумя лайнерами, хотя – user2727195

Смежные вопросы