【问题标题】:nodejs module with constructor and methods带有构造函数和方法的nodejs模块
【发布时间】:2015-10-16 20:21:07
【问题描述】:

如何在nodejs 模块中创建构造函数?

文档是这样说的:

module.exports = function(width) {
  return {
    area: function() {
      return width * width;
    }
  };
}

所以你可以这样做:var v = square(10);

我想获得类似的东西,但我的文件中还有其他几种方法。

文件:test.js

exports = module.exports;

// ctor
exports = function(val) {

};

exports.test1 = function(param1) {
    return 'a';
};

exports.test2 = function(param1, param2) {
    return 'b';
};

如何在我的代码中添加一个类似构造函数的函数,这样我就可以做到这一点:

test('val');
var t1 = test.test1('param');
var t2 = test.test1('param');

【问题讨论】:

    标签: javascript node.js node-modules


    【解决方案1】:

    你已经很接近了。

    问题出在第一行和第二行。您首先将变量exports 设置为module.exports(忘记使用var),然后用函数覆盖它。

    所以如果你想这样做,你需要先将exports.module设置为函数,然后var exports = module.exports;

    无论如何,我不建议您使用此快捷方式,因为它令人困惑,并且 export 在该上下文中已经是一个全局变量。

    你最好使用长语法并且更清楚:

    module.exports = function(val) {
        console.log ('test');
    };
    
    module.exports.test1 = function(param1) {
        console.log('a');
    };
    
    module.exports.test2 = function(param1, param2) {
        console.log ('b');
    };
    

    这是一个很好的例子: https://github.com/rvagg/through2/blob/master/through2.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 2012-03-01
      • 1970-01-01
      相关资源
      最近更新 更多