Bookshelf JS函数里面的extend()

时间:2014-03-01 13:15:43

标签: javascript node.js bookshelf.js

我正在使用http://bookshelfjs.org/

我在

中添加了一个功能
var User = Bookshelf.Model.extend({
...
// verify the password
verifyPassword: function (password, hash, done) {
  // Load hash from your password DB.
  bcrypt.compare(password, hash.replace('$2y$', '$2a$'), function(err, result) {
    return done(err, result);
  });
}
...
module.exports = User;

来自我的用户控制器,我称之为:

var User = require('../models/user');
User.verifyPassword(req.body.password, user.password, function (err, result) {

但我得到no method 'verifyPassword

1 个答案:

答案 0 :(得分:2)

您需要在控制器中创建一个User实例

var User = require('../models/user');
this.user = new User();

如果您希望用户模块始终返回实例,则将其修改为类似的内容。

var User = Bookshelf.Model.extend({
   ...
}
...
module.exports = function(options){ 
  return new User(options) 
};