Mam moduł, który wygląda tak:NodeJS Moduł eksportu/prototyp - nie ma sposobu
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
};
Jednak kiedy używać go tak:
var myModule = require('myModule.js');
myModule.put({test}, function(){
//some callback stuff
});
pojawia się następujący błąd:
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'
wydaje się, mam coś nie tak z moim MyModule.prototype.put
?
I nie jestem pewna, dlaczego ktoś mógłby zgodzić się z tym pytaniem bez ważnego powodu. Zrozumienie systemu modułów CommonJS jest bardzo ważną częścią pisania kodu node.js. Nawet jeśli rozumiesz tę koncepcję, ale przypadkowo ją przeoczyłeś ... to nadal jest poprawne pytanie. –