2017-03-25 14 views
0

私は小さなWebアプリケーションを作成しようとしていますが、問題があります。私のコードでは、アプリケーションの実行が始まる前にデータベース名を初期化しています。データベース名がサーバーに存在するかどうかをチェックし、その名前のデータベースを作成しない場合はチェックしたいと思います。つまり、私はこのようなことをしようとしています。Node.JSを使用してCouchDBでデータベースをチェックして作成する方法は?

if(dbName is not exists){ 
couch.createDatabase(dbName).then(function(){ 
    console.log('Database created'); 
}; 
} 

しかし、これを正しく行う方法がわかりません。私はnpm node-couchdbパッケージを学び、使用しようとしています。他のパッケージを使用せずにこの問題を解決することができたら大変感謝しています。

更新:データベースがcouch.listDatabases()に存在するかどうかを確認し、それ以外の場合はcouch.createDatabaseで新しいデータベースを作成します。

couch.listDatabases().then(function(dbs){ 
var controller = 0; 
console.log(dbs); 
for(var i= 0; i <= dbs.length; i++){ 
    if(dbName == dbs[i]){ 
     controller += 1; 
    } 
} 
if(controller == 0){ 
    couch.createDatabase(dbName).then(function(){ 
    console.log('Database created'); 
}, 
function(err){ 
    res.send(err); 
}); 
} 
}); 

私はサーバー上で新しいデータベースを見ることができますが、アプリケーションでこのデータベースにアクセスしようとするとこのエラーが発生します。

{"code":"EDOCMISSING","body":{"error":"not_found","reason":"missing"}} 

答えて

1

あなたは、このようなデータベースのリストを取得することができます

couch.listDatabases() 
.then(
    dbs => dbs.map(...), 
    err => { 
    // request error occured 
}); 

をし、あなたのDBがすでに存在しているかいないかどうかを確認します。

+0

私はこれに取り組んでいました。今はdbが存在するかどうかを確認できます。それが存在しない場合は、データベースも作成しますが、そのデータベースにアクセスしようとすると、次のエラーが発生します。 {"code": "EDOCMISSING"、 "body":{"エラー": "not_found"、 "reason": "missing"}} – ricster

+0

あなたは[jsfiddle](https://jsfiddle.net)であなたのコードを提供してもいいですか? –

+0

助けを借りてjsfiddleさんのおかげで、https://jsfiddle.net/9fg9mtmv/ – ricster

関連する問題