在过去的一个小时里,我一直在尝试使用 findOne、findOneOrCreate 等方法为 passport.js 编写用户模块,但无法正确完成。
用户.js
var User = function(db) {
this.db = db;
}
User.prototype.findOne(email, password, fn) {
// some code here
}
module.exports = exports = User;
应用程序.js
User = require('./lib/User')(db);
User.findOne(email, pw, callback);
我经历了几十个错误,主要是
TypeError: object is not a function
或者
TypeError: Object function () {
function User(db) {
console.log(db);
}
} has no method 'findOne'
如何在不创建用户对象/实例的情况下创建具有这些功能的适当模块?
更新
我浏览了建议的解决方案:
var db;
function User(db) {
this.db = db;
}
User.prototype.init = function(db) {
return new User(db);
}
User.prototype.findOne = function(profile, fn) {}
module.exports = User;
没运气。
TypeError: Object function User(db) {
this.db = db;
} has no method 'init'