2012-09-19 74 views
1

我有一個比較大的(50K)的文本文件被張貼:如何處理get完成的POST請求(如果100):在Express.js中繼續?

curl -H "Content-Type:text/plain" -d @system.log http://localhost:8888/ 

測試使用的是代理,我可以看到該文件的全部內容被公佈。

但Express.JS看到100:在標題中繼續,並留下一個空白的正文。我有:

app.use(express.bodyParser()); 

啓用,BTW。這裏是頭:

{ 'user-agent': 'curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5', 
    host: 'localhost:8888', 
    accept: '*/*', 
    'content-type': 'text/plain', 
    'content-length': '55909', 
    expect: '100-continue' } 

req.body是空的:

{} 

我怎麼能看到所有數據被張貼在Express.JS?

回答

1

我的猜測是,節點自動發送100-continue響應按照node http module docs(假設您使用的是足夠新的節點版本)。我猜想發生的只是text/plain內容類型不是bodyParser可以解析爲其他內容的格式(與json或www-form-urlencoded相反)。因此,您可以從標準data事件中獲取數據,請求將針對它讀取的每個數據塊發出該數據。

+0

這是正確的。使用數據事件聽起來很合理,我還在http://stackoverflow.com/questions/12497358/handling-text-plain-in-express-3上發佈了另一個問題:在Express中處理Contect-Type(通過Connect )? – mikemaccana