orm 2 중국어 문서 3.2 모델 검증 기
출처:Model Validations
Enforce 모듈 은 데 이 터 를 검증 하 는 데 사 용 됩 니 다.예전 의 검증 기 를 사용 한 사용자 에 게 는 계속 사용 할 수 있 고 그들 중 일 부 는 enforce 에 통합 되 었 으 며 나머지 부분 은 아직 없다.대체
orm.enforce
를 사용 하 는 것 을 추천 합 니 다.사용 가능 한 검증 기의 목록 은 node-enforce 를 보십시오.orm.validators
검증 기도 ORM 에 구축 되 어 이렇게 방문 할 수 있다.name: orm.enforce.unique("name already taken!")
name: orm.enforce.unique({ scope: ['age'] }, "Sorry, name already taken for this age group")
name: orm.enforce.unique({ ignoreCase: true }) // 'John' is same as 'john' (mysql is case insensitive by default)
너 는 모델 의 모든 속성 에 검증 기 를 정의 할 수 있다.모든 속성 에 대해 서 는 하나 이상 의 검증 기 를 정의 할 수 있 습 니 다.미리 정 의 된 검증 기 를 사용 하거나 새로 만 들 수도 있다.
var Person = db.define("person", {
name : String,
age : Number
}, {
validations : {
name : orm.enforce.ranges.length(1, undefined, "missing"), // "missing" is a name given to this validation, instead of default
age : [ orm.enforce.ranges.number(0, 10), orm.enforce.lists.inside([ 1, 3, 5, 7, 9 ]) ]
}
});
위의 코드 는
unique
의 길 이 를 1 과 undfined 사이(undfined 는 임 의 값 을 표시 합 니 다),그리고name
는 0 과 10(닫 힌 구간)사이 에 있어 야 하 며,열 거 된 값 중 하나 입 니 다.이 예 는 아마 의미 가 없 을 지 모 르 지만,충분히 해석 할 수 있다.대상 을 저장 할 때 어떤 검증 기 에서 도 검증 에 실패 하면 속성 이름과 검증 오류 설명 이 있 는
age
대상 을 얻 을 수 있 습 니 다.이 묘 사 는 네가 무슨 일이 일 어 났 는 지 확실히 하 는 데 도움 을 줄 수 있다.var John = new Person({
name : "",
age : 20
});
John.save(function (err) {
// err.field = "name" , err.value = "" , err.msg = "missing"
});
첫 번 째 검증 기 검증 이 실패 한 후에 검증 이 중단 되 었 다.모든 속성 을 검증 하고 모든 인증 오 류 를 되 돌려 주 려 면 전역 또는 부분 설정 에서 이 행동 을 변경 할 수 있 습 니 다.
var orm = require("orm");
orm.settings.set("instance.returnAllErrors", true); // global or..
orm.connect("....", function (err, db) {
db.settings.set("instance.returnAllErrors", true); // .. local
// ...
var John = new Person({
name : "",
age : 15
});
John.save(function (err) {
assert(Array.isArray(err));
// err[0].property = "name" , err[0].value = "" , err[0].msg = "missing"
// err[1].property = "age" , err[1].value = 15 , err[1].msg = "out-of-range-number"
// err[2].property = "age" , err[2].value = 15 , err[2].msg = "outside-list"
});
});
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx websocket ip_해시 규칙프로젝트 를 다운로드 한 후 서로 다른 네트워크 에 각각 이 demo 프로젝트 를 배치 합 니 다. 프로젝트 에서 환경 변수 에 따라 시스템 변 수 를 설정 합 니 다. spring.profiles.active=de...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.