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