2012-10-09 54 views
1

我是Node.js的新手。我使用Dirty將數據保存到.db文件中,我不知道是否已經存在通過db.set()插入的密鑰。nodejs髒檢查是否存在密鑰

換句話說:我想檢查密鑰是否存在,如果存在,請執行一些操作。

+1

你想在開始使用模塊之前檢查文件是否存在?爲什麼你不能僅僅使用每種編程語言來做什麼,並使用文件apis檢查文件是否存在?你只是無法找到node.js文檔?似乎這個頁面是你想要開始的地方。 http://nodejs.org/api/fs.html – jcolebrand

+0

對不起,如果我不夠清楚,我的意思是,我想檢查我已經通過db.set()添加到數據庫中的密鑰,如果它存在。 – dasmikko

+0

啊,謝謝,因爲這完全改變了問題的全部含義。 – jcolebrand

回答

2

只需使用提供的基本資料:https://github.com/felixge/node-dirty

我要說的處理最好的方法是:

if(!!db.get(key)){ 
    //your value already exists 
} 

這個系統似乎是專爲幼稚的做法,這是肯定的天真做法。

+1

不要忘記,如果存儲的密鑰值是「falsey」,那麼這個簡單的布爾測試將會錯過! – maerics

+0

我會假設OP會存儲實體的值,並且不需要''「,0,false'中的記錄,但那只是我。 – jcolebrand

+0

謝謝!這正是我所期待的! – dasmikko

1

可以檢查通過使用dirty.get(key)和如果返回值被定義檢查存在的鍵(在情況下,它是如假一個「falsey」的值,零,空字符串等):

var myKey='...', myVal=dirty.get(myKey); 
if (typeof(myVal) !== 'undefined') { 
    // Do something... 
} 

[原創回答以下]

您可以檢查文件是否通過使用node.js中的fs.exists(...)函數存在:

fs.exists(myDatabaseFilename, function(exists) { 
    if (exists) { /* Do something... */ } 
});  
+0

對不起,我問了難以置信的不可理解的問題!我已經更新了它。 – dasmikko