2015-04-02 70 views
0

我已經寫入了NodeWebKitApp,其中保存了用戶的數據(如名稱,uid和設置)供以後使用。我可以插入一個文件,我可以看到它的內容。文件大小約爲2KB。NEDB正在清除應用程序重新啓動後的文件內容

但是,如果我關閉了應用程序,然後重新打開它,保存的數據將丟失,並且我看到文件大小爲0字節。

調試,我發現,執行下面的線時,出現這種情況:

db = new Datastore({ filename: myPath, autoload: true }); 

我試圖調試nedb/persistance.js但未能解決問題。我也嘗試通過調用loadDatabase(function(err) {})手動加載數據庫,但沒有成功。

下面是一個代碼片段:

var Datastore = require('nedb'), 
.. 
.. 
..                
myPath = "<User-Home>/.myApp/user.db", 
db = new Datastore({ filename: myPath, autoload: true }); 

回答

0

你肯定「/.myApp/user.db」是一個有效的路徑?您可以嘗試使用「./myApp/user.db」。

+0

是的,它的隱藏文件夾在用戶的主目錄下。 '/Users/user-home/.myApp/user.db'(在mac上)。我可以寫入,並且可以在插入文檔後看到文件中的數據。但是,在重新啓動應用程序時,它會被清除/清空/覆蓋(發生在我創建DataStore的地方) – 2015-04-03 00:39:07

+0

我嘗試使用非隱藏文件夾,但遇到同樣的問題。它適用於某人[見這裏](http://stackoverflow.com/questions/19315550/how-to-achieve-persistent-storage-in-nedb) – 2015-04-03 00:49:38

+0

在進一步的調試中,我看到loadDatabase正在創建數據 - 文件,從而導致丟失舊數據。任何線索? – 2015-04-03 19:37:17

0

以防萬一您沒有將數據插入到帶有實際insert()命令的.db文件中,請確保您的條目具有每個JSON行的_id字段。

相關問題