2016-07-23 2 views
9

질문은 간단하지만 인터넷과 pouchdb 소스를 통한 철저한 검색을 통해서도 로컬 데이터베이스가 있는지 확인하는 기능을 찾을 수 없습니다.PouchDB 로컬 데이터베이스가 있는지 확인하십시오.

로컬 데이터베이스가 이미 존재하는지 확인한 다음 선택적으로 성공한 로그인을 사용하는 경우가 있습니다.

안부

+0

아직 해결책이 없습니까? – Costa

답변

5

skip_setup 옵션을 사용할 수 실제로있다.

기본적으로 the documentation에 명시된 바와 같이 PouchDB는 데이터베이스가 존재하는지 확인하고 아직 존재하지 않으면 데이터베이스를 만들려고합니다. 이 설정을 true으로 설정하면이 설정을 건너 뛸 수 있습니다. akofman 지적

const db = new PouchDb('DB_URL_OR_NAME', { skip_setup: true }); 

db.info() 
    .then(() => { 
    // The database exists. 
    // Do something... 
    }) 
    .catch(e => { 
    // No database found and it was not created. 
    // Do something else... 
    }); 
+0

흥미 롭습니다. 나는 데이터베이스를 만든 skip_setup없이 info()를 시도했다. 조합을 지적 해 주셔서 감사합니다. 매력처럼 작동합니다. – Mythli

+4

설명서에서이 옵션은 원격 데이터베이스에서만 사용할 수 있으며이 질문은 로컬 데이터베이스에 관한 것입니다. 불행히도 로컬 데이터베이스로이 옵션을 시도했지만 작동하지 않습니다. – akofman

+0

@akofman 여전히 해결책이 없습니까? – Costa

4

으로 skip_setup는 로컬 데이터베이스와 함께 작동하지 않습니다 :이 옵션을

데이터베이스가 존재하지 않는 경우, 예를 들어 데이터베이스의 정보를 조회 할 때 오류가 발생합니다 활성화. 그래서 내가 알고있는 유일한 방법은 해결 방법입니다 - 새 데이터베이스가 비어 있는지 확인한 다음 즉시 삭제하십시오. 물론 이것은 문제의 데이터베이스가 있지만 비어있는 경우 도움이되지 않습니다 ...

const testdb = new PouchDB('testdb_name'); 

testdb.info().then(function (details) { 
if (details.doc_count == 0 && details.update_seq == 0) { 
    alert ('database does not exist'); 
    testdb.destroy().then (function() {console.log('test db removed');}); 
} 
else alert ('database exists'); 
}) 
.catch(function (err) { 
    console.log('error: ' + err); 
return; 
}); 
관련 문제