복붙노트

[MONGODB] 유성 방법 대 / 거부 규칙은 허용

MONGODB

유성 방법 대 / 거부 규칙은 허용

유성에서 때 나는 거부 규칙을 통해 방법을 선호 하는가?

그것은 허용 / 그들의 목표는 더 명시 적으로있는 한, 규칙을 선호한다 거부 나에게 것, 그리고 그들을 찾기 위해 어디 하나 알고있다.

그러나, 발견 유성 책에서 중복 삽입을 방지이라고해야하는 방법을 통해 정의 (그리고로 남아있을 수있는 ( "중복"그 URL 특성이 이미 같은 모음의 다른 문서에 정의 된 문서를 추가로 정의되는) 독자에게 운동, 장 8.3).

난 내가 훨씬 명확하게 찾을 수있는 방법으로이 검사를 구현할 수라고 생각 :

Posts.deny({
    update: function(userId, post, fieldNames, modifier) {
        return Posts.findOne({ url: modifier.$set.url, _id: { $ne: post._id } });
    }
});

(당신은 예를 알고있는 경우 N.B.는, 그래, 내가 자발적으로 더 구체적으로 질문에서 수표를 "수정 된 속성의 서브 세트"는 탈락.)

본인은 업데이트 운영자가 몽고에서 $ 세트보다가 있다는 것을 이해하지만, 그들은 입력보고 나는 보안 구멍을 열어두고 기분이 안.

그래서 내 거부 규칙에 어떤 결함이 있습니까? 독립적으로, 나는 방법을 선호 하는가? 나는 그것이 무엇을 얻을 것인가? 나는 무엇을 잃을 것인가?

해결법

  1. ==============================

    1.일반적으로 나는 주관적인 답변을 피하려고하지만, 이것은 정말 중요한 논쟁이다. 우선은 발견 유성 블로그에서 클라이언트 측 조작 대 유성 방법을 읽어 보시기 바랍니다 것입니다. 참고 Edthena에서 우리는 독점적으로 분명하게해야한다 이유로 방법을 사용하는 것이.

    일반적으로 나는 주관적인 답변을 피하려고하지만, 이것은 정말 중요한 논쟁이다. 우선은 발견 유성 블로그에서 클라이언트 측 조작 대 유성 방법을 읽어 보시기 바랍니다 것입니다. 참고 Edthena에서 우리는 독점적으로 분명하게해야한다 이유로 방법을 사용하는 것이.

    제 생각에는, / 더 심미적으로 만족한다 거부 허용, 그러나 그것의 근본적인 약점은 (특히 업데이트에) 권한을 적용입니다. 나는 경우 경우에 클라이언트 측 작업을 추천 할 것입니다 :

    MVP를 구축 할 때 제 생각에는, 클라이언트 측 작업을 사용하는 것이 합리적인 선택이지만, 나는 다른 모든 상황에 대한 방법으로 전환 할 것입니다.

    갱신 2/22/15

    Sashko Stubailo는 허용 / 대체 삽입 / 업데이트 / 삭제 방법과 거부 할 수있는 제안을 만들었습니다.

    갱신 6/1/16

    유성 가이드는 허용 / 항상 피해야한다 거부 위치를합니다.

  2. from https://stackoverflow.com/questions/27330321/meteor-method-vs-deny-allow-rules by cc-by-sa and MIT license