Sails 사용자 정의 모델 방법
1781 단어 Model
Sails 사용자 정의 모델 방법
Sails에서 모델은 원시적인 정적 방법을 제공했다. 예를 들어.create(), .update(), .destroy(), .find(), 등.실제 업무에서 흔히 하는 작업은 대상을 저장할 때 대상이 존재하지 않으면 이 대상을 추가하고, 그렇지 않으면 업데이트하는 것이다. 이것은 insertOrUpdate 작업이다.모델에서는 이 방법을 제공하지 않았다.
MongodB는 업데이트 대상에 {upsert=true} 이 옵션을 추가하는 것과 유사한 원생 방법을 제공했지만, 되돌아오는 결과는 숫자이며 업데이트 대상이 아닙니다. 이것은 수요에 맞지 않습니다.
모델을 확장하는 정적 방법을 고려하십시오.sails는 매우 편리한 확장 지원을 제공합니다.
모델.js에 다음과 같은 방법을 추가합니다.
module.exports.models = {
insertOrUpdate: function(key, record, CB){
var self = this; // reference for use by callbacks
var where = {};
where[key] = record[key]; // keys differ by model
this.find(where).exec(function findCB(err, found){
if(err){
CB(err, false);
}
// did we find an existing record?
if(found && found.length){
self.update(record[key], record).exec(function(err, updated){
if(err) { //returns if an error has occured, ie id doesn't exist.
CB(err, false);
} else {
CB(false, found[0]);
}
});
}else{
self.create(record).exec(function(err, created){
if(err) { //returns if an error has occured, ie invoice_id doesn't exist.
CB(err, false);
} else {
CB(false, created);
}
});
}
});
}
};
이렇게 하면 됩니다.create 방법을 호출하는 것처럼 사용자 정의 insertOrUpdate 방법을 호출합니다.참조: http://stackoverflow.com/a/25938914http://sailsjs-documentation.readthedocs.org/en/latest/concepts/Models/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
DuxCms의 AdminUserModel 분석텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.