Sails.js를 배우기 시작했고 세션 변수에서 모델의 기본값을 설정하는 더 간단한 방법이 있는지 알고 싶습니까? Waterlock을 사용하여 인증을 수행하고 req.session.user_id
과 같은 세션 변수에 user_id를 설정합니다. 메시지 모델이 있는데 'from'
필드를이 세션 변수에 기본값으로 설정하고 싶습니다. Sails.js에서이 작업을 수행 할 수있는 방법이 있습니까? 당신이 항해의 기본 ORM을 사용하는 경우모델에 기본값 설정 (Sails.js)
0
A
답변
0
는 워터 후 모델 속성은 defaultsTo 옵션이 있습니다. 제공된 값은 함수 일 수 있습니다. waterline documentation을 볼 수 있습니다.
샘플 모델
module.exports = {
attributes: {
description: {
type: 'string',
defaultsTo: 'No description.'
},
email: {
type: 'email',
required: true,
unique: true
},
alias: {
type: 'string',
defaultsTo: function(){
return this.email;
}
},
}
};
제공된 값이 함수의 호출이 생성의 값에 바인딩 된 함수 인 경우.
Model.create(values)...
의 경우 별칭이 null/undefined 인 경우 alias = defaultsTo.call(values)
을 사용하여 별칭 값을 가져옵니다.
따라서 req.session.user_id
을 사용하려면 생성 중에이를 포함해야 할 수 있습니다. Model.create({session: req.session,...})
. 나는 Waterlock을 사용하지 않기 때문에 정말로 확신 할 수 없다. 그리고 이것이 이것이 최선의 방법이라고 생각하지 않습니다. 내 경험에서
당신이 개발 돛 디스크를 사용하는 경우 다음 이러한 추가 값이 유지됩니다 것을 볼 수 있지만, 같은 돛 - MySQL의 어댑터를 사용하는 경우 이러한 추가 값은 무시됩니다. 계속하기 전에 삭제할 수 있습니다.
beforeCreate: function(values, cb){
delete values['session'];
cb();
}