oop - Parametrized module loading in Node.js -


i working on first node.js project , have come oop problem not sure how solve in node.js.

i have module a:

module.exports = a;  function a() { } a.prototype.method = function() { return "a";}; //other methods... 

and couple other modules (lets b , c) implement same "interface" a.

now, have module x:

module.exports = x;  function x(impl) {   //choose a, b, or c based on value of impl } 

so question is, how implement x in order able do:

var x = require("x"); var impl = new x("a"); impl.method(); //returns "a" 

i believe prototype , __proto__ involved?

edit: trying achieve load implementation a, b or c, based on string value (env variable) through standartized interface new x() , access methods of a(b,c...) through instance of x.

i think you're after:

a.js (b.js , c.js similar, of course):

function a() {}  a.prototype.method = function() {     return 'a'; };  module.exports = a; 

x.js:

var modules = {     a: require('./a'),     b: require('./b'),     c: require('./c') }  function x(impl) {     if(impl in modules)         return new modules[impl];     else         throw new error('unknown impl: ' + impl); }  module.exports = x; 

usage:

var foo = new x('a'); foo.method(); // => 'a' var bar = new x('b'); bar.method() // => 'b' 

an alternative keeping modules object in x require inside x(impl) , let require throw error:

function x(impl) {     return new require('./' + impl); } 

Comments

Popular posts from this blog

delphi - How to convert bitmaps to video? -

jasper reports - Fixed header in Excel using JasperReports -

python - ('The SQL contains 0 parameter markers, but 50 parameters were supplied', 'HY000') or TypeError: 'tuple' object is not callable -