我有一个模块,看起来像这样:模块的NodeJS出口/原型 - 有没有方法
var MyModule = module.exports = function MyModule(opts) {
opts = (opts === Object(opts)) ? opts : {};
if (!(this instanceof MyModule)) {
return new MyModule(opts);
}
for (var key in opts) if ({}.hasOwnProperty.call(opts, key)) {
this.config[key] == opts[key];
}
};
MyModule.prototype.config = {
something:'value'
}
MyModule.prototype.put = function put(info, cb) {
//do stuff
};
然而,当我使用它是这样的:
var myModule = require('myModule.js');
myModule.put({test}, function(){
//some callback stuff
});
我得到以下错误:
TypeError: Object function MyModule(opts) {
opts = (opts === Object(opts)) ? opts : {}; if (!(this instanceof MyModule)) { return new MyModule(opts); } for (var key in opts) if ({}.hasOwnProperty.call(opts, key)) { this.config[key] == opts[key]; } } has no method 'put'
看来我有我的MyModule.prototype.put
出问题了吗?
我我不确定为什么有人会无缘无故地低估这个问题。理解CommonJS模块系统是编写node.js代码非常重要的部分。即使你了解这个概念,但却意外地忽略了它......这仍然是一个有效的问题。 –