水线在应用开始时改变值

时间:2016-06-10 12:18:33

标签: node.js coffeescript waterline

当我启动使用Waterline作为其数据库ORM的应用程序时,users表中的密码字段会发生变化。我认为它正在重新散列它,但我不明白它为什么会这样做。

My Collection看起来像这样:

Crypto = require 'crypto'
Waterline = require 'waterline'

module.exports = Waterline.Collection.extend({
  identity: 'users'
  connection: 'default'
  attributes: {
    id: {
      type: 'integer'
      autoIncrement: true
      primaryKey: true
    }
    name: {
      type: 'string'
      required: true
    }
    username: {
      type: 'string'
      unique: true
      required: true
    }
    password: {
      type: 'string'
      required: true
    }

    verifyPassword: (password) ->
      md5 = Crypto.createHash('md5')
      md5.update(password)
      (@password == md5.digest('hex'))
  }

  beforeCreate: (attrs, cb) ->
    md5 = Crypto.createHash('md5')
    md5.update(attrs.password)
    attrs.password = md5.digest('hex')
    cb()

  authenticate: (username, password, cb) ->
    @findOne({username: username}).then (user) ->
      if user
        if user.verifyPassword(password)
          cb(null, user)
        else
          cb("Incorrect password given for #{username}", null)
      else
        cb("Unable to find user #{username}", null)

})

createdAtupdatedAt设置为当前时间,但记录中的其他内容会更改。

我正在使用PostgreSQL数据库。

0 个答案:

没有答案