2012-02-15 4 views
4

Express-form은 node.js/express에 대한 매우 강력한 유효성 검사 플러그인입니다. 그러나 예제와 문서에서 모든 응답은 서버 측 (console.log)이며, 이는 개발하기에 충분하지만 사용자에게 무엇이 잘못되었는지를 알려주지는 않습니다./Node.js 클라이언트 쪽 응답이있는 서버 쪽 양식 유효성 검사

  1. 양식을 제출하고 다시 재 잘못된 필드에 'error'-클래스를 추가 부착 req.body 및 검증 메시지와 함께 양식을 다시 렌더링 : 순간, 나는 두 개의 서로 다른 솔루션을 상상할 수에서

    .
  2. AJAX를 사용하여 양식을 제출하십시오.

'new'렌더링시 데이터베이스를 다시 쿼리하고 싶지 않으므로 옵션 2를 선호합니다. 하지만 어떻게 검증 결과를 다시 클라이언트에 전달하고 '오류'클래스를 입력 필드에 추가하는지 생각해야합니다.

아이디어가 있으십니까?

답변

3

브라우저의 첫 번째 인스턴스에서 자바 스크립트를 통해 사용자 입력의 유효성을 검사 한 다음 렌더링 된 양식 (la rails)의 오류 출력 서버에서 유효성 검사를 시도합니다. 지금은 맞춤형 유효성 검사기 세트를 사용하고 있으므로 express-form으로 올바른 방향으로 안내 할 수는 없습니다.

맞춤 정규식과 함께 가끔 validator npm 패키지를 사용하고 일반 DOM 또는 일부 프레임 워크를 사용하여 브라우저에서 validator 유효성 검사를 사용할 수도 있습니다.

편집 :

AJAX 검증 작업은, 당신이 (당신이 express.bodyParser() 미들웨어를 사용하는 경우), 약간의 오류가있는 경우에 그것을 가리킬 수 있습니다, 매개 변수의 유효성을 검사 요청에서 개체를 받기 매우 쉽습니다 당신의 응답 예.

{ 
"errors": { 
    "foo": "must be a number" 
    } 
} 

과 :

for (i in answer.errors) { 
    var target = document.getElementById(i); 
    target.class = "error"; 
    // here you can also handle the error description 
} 

브라우저 측 프레임 워크를 사용하는 경우, 플러그인이 있습니다 또는 나는 그것이 하나를 작성하는 간단 확신합니다.

관련 문제