2017-12-14 10 views
0

Sails 1.0.0-42でユーザーを作成しようとしていますが、ユーザーモデルのコールバックライフサイクルが呼び出されないという問題があります。私はいろいろ試してみて、何も呼ばれていません。前もって感謝します。SAILS JS 1.0モデルのコールバックライフサイクルが呼び出されない

これはアクション2「サインアップ」のコードです:

module.exports = { 

    friendlyName: 'Create User', 

    description: 'user create action2', 

    inputs: { 

     name: { 
      description: 'user create', 
      type: 'string', 
      required: true 
     }, 
     email: { 
      description: 'user create', 
      type: 'string', 
      required: true 
     }, 
     password: { 
      description: 'user create', 
      type: 'string', 
      required: true 
     }, 

    }, 

    exits: { 
     notFound: { 
     description: 'ERRO create user.', 
     responseType: 'notFound' 
     } 
    }, 

    fn: async function (inputs, exits) { 

     const {name, email, password} = inputs; 

     var user = await User.create({name, email, password}).fetch(); 

     if(!user) return exits.notFound(); 

     return exits.success(user); 

    } 
}; 

これは、ユーザーモデルコード

var bcrypt = require('bcrypt'); 

module.export = { 

    attributes: { 

     name: { 
      type: 'string', 
      required: true, 
     }, 

     email: { 
      type: 'string', 
      required: true, 
     }, 

     password: { 
      type: 'string', 
      minLength: 6, 
      required: true, 
      columnName: 'hashed_password' 
     }, 

    }, 

    // Lifecycle Callbacks 

    beforeCreate: function (values, cb) { 

     // Hash password 
     bcrypt.hash(values.password, 10, function(err, hash) { 
      if(err) return cb(err); 
      values.password = hash; 
      cb(); 
     }); 
    } 

}; 

ユーザーが作成されますが、パスワードが暗号化されていない、とのテストでありますbeforeCreateは呼び出されません。

答えて

0

あなたのモデルファイルを宣言しています。

module.export 

しかし、それはする必要があります:

module.exports 

sが大きな違いを作ること!

それはあなたの現在のコードと全く働く理由は、デフォルトでは、組み込みのsails-diskデータベーススキーマレスである、ということですので、あなたのUser.jsファイルは何もエクスポートされなかったにもかかわらず、それはまだあなたが持つレコードを作成することができますあなたが欲しいフィールドは何でも。

関連する問題