7
我的应用程序:Node.js,Express,一些中间件,包括connect-assets和express.static。来自Node.js的“管道中未处理的流错误”
所有在本地计算机(OSX,Node 0.8)上运行的开发模式(因此express.static)。
大概重要的细节:最近,我(从HTTP重定向有必要时)提出通过HTTPS整个应用程序的工作,而我开发使用自SIGNE证书(在浏览器中启用,当然)和。现在
,应用程序常常失败机智栈跟踪这样的:
(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)
重要提示:这种情况经常发生,但不是每次,所以我认为这不是我的代码中的错误。
我发现这可能是由于express.static和打开的文件限制,所以我跑ulimit -n 10000
- 没有效果,不幸的是。
任何想法?这开始非常令人沮丧。
我的天哪,你不知道我花了多少小时。谢谢。 – ninjaneer
express.static修复程序的来源是什么?我试图诊断如何在connect.js应用程序中获取未处理的套接字错误,并想知道这是否与此相关。但找不到别人说express.static必须是链中的最后一个,或者为什么。 – natevw
google搜索某处...实际上,因为我再次得到了相同的错误,所以现在我不确定它是否是一个真正的修复程序 – Guard