nodejs模块,包含构造函数和方法

时间:2015-01-09 14:21:13

标签: javascript node.js node-modules

如何在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');

1 个答案:

答案 0 :(得分:0)

你很亲密。

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

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

无论如何,我不建议您使用此快捷方式,因为它的混乱和导出在该上下文中已经是一个全局变量。

您最好使用长语法并更清晰:

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