2017-12-14 18 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는 불려 가지 않습니다.

module.export 

을하지만 할 필요가 :

답변

0

모델 파일은 선언 s 큰 차이가

module.exports 

그건!

는 현재 코드에서 모두 작동하는 이유는 기본적으로 내장 sails-disk 데이터베이스 스키마하다는 것을, 그래서 당신의 User.js 파일이 아무것도 수출되지 않았다하더라도, 그것은 여전히 ​​레코드를 만들 수 있습니다 네가 원하는 분야.