2011-07-14 160 views
7

如果我重裝我的應用程序(從與Reload按鈕的瀏覽器),一個許多像50 reload/10 seconds時候,它給了我這個錯誤:的Node.js:EBADF,錯誤的文件描述符

events.js:45 
    throw arguments[1]; // Unhandled 'error' event 
       ^
Error: EBADF, Bad file descriptor 

這似乎對我來說,一個帶寬錯誤或類似的東西,原來我在使用HTML 5 Audio API時遇到了錯誤,如果我連續10-15次加載音頻文件,那麼我得到了錯誤,但現在我已經發現我在沒有使用Audio API的情況下出現錯誤,只是通過重新加載站點很多次,Safari也給我提供了比Chrome更快的錯誤(WTF?)

我正在使用Node.js 0.4.8和express + jade,並且我還通過db-mysql模塊連接到MySQL數據庫。

我無法找到關於這個話題有什麼幫助,所以pleeease讓我知道可能會導致這個錯誤,因爲它真的很困惑:(

回答

3

通過「重新加載應用程序」你的意思刷新網絡上的任何物品你的應用程序的主頁從瀏覽器,或實際上停止並重新啓動node.js服務器進程?我假設前者,在這種情況下,如果你不能可靠地重現這一點,調試將非常棘手,特別是因爲你不如果你使用express.js app.error掛鉤(docs here),你會想從「壞文件描述符」錯誤中記錄錯誤路徑,希望能夠告訴你這是否是這個錯誤是一個臨時文件,被刪除或什麼。就實際原因而言e,我們只能提供猜測,因爲「壞文件描述符」是一個非常普遍的低級別錯誤,基本上意味着您正在調用對不再處於該操作的正確狀態的文件描述符的操作(如讀取已關閉的文件,打開已刪除的文件等)。

相關問題