mongoose
몽구스 사전 및 사후 미들웨어 (후크)
수색…
미들웨어
미들웨어 (프리 훅 및 포스트 훅이라고도 함)는 비동기 함수 실행 중에 제어가 전달되는 함수입니다. 미들웨어는 스키마 수준에서 지정되며 플러그인 작성에 유용합니다. Mongoose 4.0에는 문서 미들웨어와 쿼리 미들웨어의 두 가지 유형의 미들웨어가 있습니다. 문서 미들웨어는 다음 문서 기능을 지원합니다.
- 초기화
- 유효성을 검사하다
- 구하다
- 풀다
쿼리 미들웨어는 다음 모델 및 쿼리 기능에서 지원됩니다.
- 카운트
- 발견
- findOne
- findOneAndRemove
- findOneAndUpdate
- 최신 정보
문서 미들웨어와 쿼리 미들웨어 모두 사전 및 후크를 지원합니다.
사전
프리 후크에는 직렬 및 병렬의 두 가지 유형이 있습니다.
연속물
각 미들웨어가 다음에 호출 할 때 직렬 미들웨어가 차례로 실행됩니다.
var schema = new Schema(..);
schema.pre('save', function(next) {
// do stuff
next();
});
평행
병렬 미들웨어는보다 세분화 된 흐름 제어를 제공합니다.
var schema = 새로운 스키마 (..);
// `true` means this is a parallel middleware. You **must** specify `true`
// as the second parameter if you want to use parallel middleware.
schema.pre('save', true, function(next, done) {
// calling next kicks off the next middleware in parallel
next();
setTimeout(done, 100);
});
후크 방법 (이 경우 save)은 각 미들웨어에 의해 done이 호출 될 때까지 실행되지 않습니다.
미들웨어 게시
포스트 미들웨어는 후킹 된 메소드와 모든 프리 미들웨어가 완료된 후에 실행된다. 포스트 미들웨어는 직접 흐름 제어를받지 못한다. 예를 들어, 다음 또는 완료 콜백이 전달되지 않는다. 포스트 후크는 이러한 메서드에 대해 기존 이벤트 리스너를 등록하는 방법입니다.
schema.post('init', function(doc) {
console.log('%s has been initialized from the db', doc._id);
});
schema.post('validate', function(doc) {
console.log('%s has been validated (but not saved yet)', doc._id);
});
schema.post('save', function(doc) {
console.log('%s has been saved', doc._id);
});
schema.post('remove', function(doc) {
console.log('%s has been removed', doc._id);
});
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow