2017-03-25 77 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 
}); 

,並檢查你的數據庫已經存在與否。

+0

我只是在爲此工作。現在我可以檢查數據庫是否存在。如果它不存在,那麼我也創建一個數據庫,但是當我嘗試訪問該數據庫時,出現以下錯誤; {「code」:「EDOCMISSING」,「body」:{「error」:「not_found」,「reason」:「missing」}}你知道爲什麼嗎? – ricster

+0

你可以請提供您的代碼與[jsfiddle](https://jsfiddle.net) –

+0

這裏的jsfiddle感謝您的幫助,https://jsfiddle.net/9fg9mtmv/ – ricster

相關問題