このような UserProvider というモジュールが 1 つあります。
var UserProvider = function(db) { ... }
UserProvider.prototype.createUser = function(email, password, callback) { ... }
UserProvider.prototype.findUserByEmail = function(email, callback) { ... }
...
exports.UserProvider = UserProvider;
そして、このような ModelProvider と呼ばれる別のモジュール
var UserProvider = require('./user').UserProvider;
var ModelProvider = function() {
...
this.User = new UserProvider(db);
}
exports.ModelProvider = ModelProvider;
しかし、この行では、モジュールをインクルードしたメイン モジュール内のオブジェクトにthis.User = new UserProvider(db);
アクセスできません。 UserProvider
ModelProvider
これを呼び出そうとすると:
var ModelProvider = require('./model/model').ModelProvider;
var Model = new ModelProvider();
Model.User.findUserByEmail(email, function() {...});
次のエラーが発生します。
TypeError: Object function Model(doc, fields, skipId) {
if (!(this instanceof Model))
return new Model(doc, fields, skipId);
model.call(this, doc, fields, skipId);
} has no method 'findUserByEmail'
これを明らかにするために欠けているJavaScriptのトリックがあると思いますか?
ありがとう!