MongoDb와 상호 작용하기 위해 mongoose를 사용하는 간단한 응용 프로그램을 만들고 있으며 고유 한 유효성 검사 오류 처리가 많이 신경 쓰였습니다. 이메일에 대한 true 및 중복 이메일 주소를 새 문서가 입력되면, 내가받을 오류는 다음과 같습니다 : 위의 스키마에서Mongoose, MongoError hanlding
UserSchema = new Schema({
email: {type:String, required: true, unique: true, trim: true, match: [emailRegex, 'Email format is invalid']},
hashedPassword: {type: String, default: ''},
salt: {type: String, required: true, unique:true}
}
);
, 나는 독특한이 걸릴 위의
는{ [MongoError: insertDocument :: caused by :: 11000 E11000 duplic
ndex: testdb.users.$email_1 dup key: { : "[email protected]
name: 'MongoError',
code: 11000,
err: 'insertDocument :: caused by :: 11000 E11000 duplicate key
estdb.users.$email_1 dup key: { : "[email protected]" }' }
오류 객체 클라이언트에게 다시 표시하려면 정보를 추출하는 꽤 노력, 내 질문은 : 어쨌든 validationError 대신 사용하는 것이 더 직관적이고 간단합니까?
나는 사용자 지정 경로 유효성 검사도 고려해 봤지만 가능하면 기본 제공 기능을 사용하는 것이 좋습니다.
많은 감사,
나는 지금 정확한 상황을 겪고 있습니다. 그리고 최선의 방법은 오류 필드에 정규식을 적용하는 것입니다. 즉, @wdberkeley에는 진실이 있습니다. 중복 키에 대한 오류 코드는 상수 인 것으로 보이며 인덱스 이름에서 키 (필드)를 추출하기가 어려워야합니다. – jhenriquez