2012-11-04 3 views
7

Ứng dụng của tôi: Node.js, Express, một số phần mềm trung gian bao gồm cả tài sản kết nối và express.static."Lỗi luồng chưa xử lý trong đường ống" từ Node.js

Tất cả chạy trên máy cục bộ (OSX, Node 0.8) ở chế độ phát triển (do đó express.static).

Chi tiết quan trọng: Gần đây tôi đã thực hiện toàn bộ ứng dụng thông qua HTTPS (với chuyển hướng từ HTTP khi cần) và trong khi phát triển tôi sử dụng chứng chỉ tự ký (được bật trong trình duyệt của mình).

Bây giờ, các ứng dụng thường không wit đống dấu vết như thế:

(1)

stream.js:81 
    throw er; // Unhandled stream error in pipe. 
     ^
Error: write EPIPE 
    at errnoException (net.js:769:11) 
    at Object.afterWrite (net.js:593:19) 

(2)

stream.js:81 
    throw er; // Unhandled stream error in pipe. 
     ^
Error: socket hang up 
    at SecurePair.error (tls.js:948:15) 
    at EncryptedStream.CryptoStream._done (tls.js:432:17) 
    at EncryptedStream.CryptoStream._pull (tls.js:577:12) 
    at SecurePair.cycle (tls.js:866:20) 
    at EncryptedStream.CryptoStream.end (tls.js:405:13) 
    at Socket.onend (stream.js:66:10) 
    at Socket.EventEmitter.emit (events.js:126:20) 
    at TCP.onread (net.js:417:51) 

(3)

stream.js:81 
    throw er; // Unhandled stream error in pipe. 
     ^
Error: socket hang up 
    at createHangUpError (http.js:1264:15) 
    at CleartextStream.socketCloseListener (http.js:1315:23) 
    at CleartextStream.EventEmitter.emit (events.js:126:20) 
    at SecurePair.destroy (tls.js:938:22) 
    at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

Quan trọng: điều này xảy ra thường xuyên nhưng không mỗi lần, vì vậy tôi cho rằng đây không phải là một lỗi trong mã của tôi.

Tôi thấy điều này có thể là do giới hạn tệp tin nhanh và mở vì vậy tôi chạy ulimit -n 10000 - không có tác dụng, thật không may.

Bất kỳ ý tưởng nào? Điều này bắt đầu cực kỳ bực bội.

Trả lời

5

OK, có vẻ như tôi tìm thấy câu trả lời (ít nhất là tôi tìm thấy một vấn đề tương tự đã đề cập, cố gắng sửa chữa của họ và nó ngừng rơi):

các express.static middleware phải là người cuối cùng trong chuỗi

+0

chúa ơi, bạn không biết tôi đã dành bao nhiêu giờ cho việc này. cảm ơn. – ninjaneer

+0

Nguồn của bạn cho bản sửa lỗi express.static là gì? Tôi đang cố gắng để chẩn đoán làm thế nào tôi nhận được lỗi socket unhandled trong một ứng dụng connect.js và tự hỏi nếu điều này là có liên quan. Nhưng không thể tìm thấy ai khác nói express.static phải là người cuối cùng trong chuỗi, hoặc tại sao. – natevw

+1

googled một nơi nào đó ... thực sự kể từ đó tôi đã nhận được cùng một lỗi nhiều lần một lần nữa vì vậy bây giờ tôi không chắc chắn đó là một sửa chữa thực sự – Guard