2012-04-04 57 views
3

我在刪除由NodeJS創建的db文件時出現問題存儲擴展名。據我可以告訴髒不提供刪除數據庫文件的方法,所以我必須手動執行此操作。刪除nodejs dirty db文件

我試過fs.unlink()並且這個執行正常,但是文件並沒有被刪除,直到我終止節點服務器(我認爲)意味着Dirty仍然持有文件句柄。問題是我無法從Dirty中獲取文件句柄,因爲它使用createReadStreamcreateWriteStream不返回文件句柄的方法。

有什麼辦法可以刪除Dirty生成的db文件,例如,當客戶端從服務器斷開連接時?

+1

你有沒有嘗試'先刪除數據庫',讓它關閉數據庫文件? – cababunga 2012-04-04 16:22:31

+1

是的,我確實做到了,但仍然無法正常工作。如果我在取消鏈接操作之後檢查文件,它將顯示空的大小爲0KB,但它仍然存在。如果我現在關閉節點服務器,文件消失,這意味着文件句柄仍然在當前的某個地方打開。訪問數據庫文件的唯一功能是髒的 – Amir 2012-04-25 11:06:07

回答

1

不是很煩人,但你爲什麼要惹惱它呢?也許還有另一種方法來處理這個問題。否則,我可以提供的唯一幫助就是分叉並提供一個殺死流的選項(http://nodejs.org/api/fs.html#fs_fs_createwritestream_path_options)

如果你最終要走那條路線,請讓我知道,我很樂意提供幫助 - 我使用DirtyDB作爲內存數據庫適配器,用於SailsWaterline