2012-06-25 3 views
1

CouchDB를 데이터베이스로 사용하여 Express.js 프레임 워크에 Node.js 응용 프로그램을 구축하고 있습니다. 세션 상태를 유지하기위한 CouchDB의 세션 API와 데이터의 다른 섹션에 대한 다양한 데이터베이스를 활용하고 있습니다.CouchDB 응답에 실패 할 수있는 방법은 무엇입니까?

본질적으로 모든 요청에서 내 응용 프로그램 코드가 Couch에 요청을 한 다음 오류 (노드에서)가 발생하면 오류를 기록하고 404 페이지 또는 그와 비슷한 것으로 리디렉션함으로써 적절하게 대응할 수 있습니다. 그러나 CouchDB 오류가 발생하면 Node는 오류로 간주하지 않고 해당 데이터를 고려합니다. 이제는 한 CouchDB를 만이 형식을 반환 할 수 있습니다 나를 전적으로 괜찮 : 두 가지 속성 오류 및 이유

{ 
    "error": "illegal_database_name", 
    "reason": "Only lowercase characters (a-z), digits (0-9), and any of the characters _, $, (,), +, -, and/are allowed. Must begin with a letter." 
} 

JSON의 문서는. 그걸 파싱하고 적절한 메시지를 돌려 줄 수 있습니다. 상당히 우아하게 실제로.

BUT! CouchDB에서 기대할 수있는 전부입니까, 아니면 Couch가 실패 할 수있는 또 다른 방법입니까?이 두 필드 (등록 정보)가있는 JSON 문서가 생성되지 않습니까?

+0

이전 답변에 제안 된 것과 같이 나노를 사용하지 않는 이유는 무엇입니까? 어쩌면 소스 코드를 읽는 것일까 요? :) 관련 코드는 https://github.com/dscape/nano/blob/master/nano.js#L280 – dscape

+0

가능성이 있습니다. 소스 코드의 일부를 읽어 보면 멋지다! 지금 웹 응용 프로그램 보안에 대한 책 읽기. 정말로 흥미있는 재료. 그래도 나는 그것에 대해 잘 알고 있다고 생각합니다. 나노는 보안 관점에서 어떻게됩니까? – Costa

답변

1

응답 코드에 의존하는 dscape의 정보가 정확하며 대부분의 경우 errorreason 인 객체가 표시됩니다. 대량 문서 오류는 이들 중 어느 것도 사실이 아닐 때 생각할 수있는 유일한 곳입니다. 하나의 문서 만 실패하면 200을 얻지 만 실패한 문서에 해당하는 배열 요소 내에 error/reason이 생깁니다. 자세한 내용은 the docs을 참조하십시오.

관련 문제