我試圖管,用於由遠程服務器處理,大意如下的請求POST請求:節點快遞/要求:管道與身體解析
var destination = request(url);
req.pipe(destination).pipe(res);
這只是正常的GET
請求。但是對於POST
請求我很掙扎。我認爲需要注意的一點是,對於POST
請求,我在我的POST
路由處理程序之前使用了一個body解析器,以便從POST
請求中提取正文...這只是一個基本的文本正文解析器,因爲正文包含純文本:
var postRouteHandler = someFunction;
var bodyParser = require('body-parser');
var textParser = bodyParser.text({
limit: '50kb'
});
app.use('/postRoute', [textParser, postRouteHandler]);
從this issue和this issue在我看來,關於POST
要求做任何處理,你管的時候,才導致出現問題。事實上,當我刪除解析器時,管道似乎工作正常。
問題是我需要首先檢查身體,進行一些初始處理,然後確定是否將請求傳送到遠程服務器。所以我需要來解析管道之前的身體。
有沒有辦法解決這個問題?
向大師學習!天才!這不僅是一個很好的解決方案,也是對問題發生原因的一個清晰而簡潔的解釋。你確實是大師@robertklep! – drmrbrewer
...只是一件事......它應該是'request.post(url)'而不是'request(url)'? – drmrbrewer
我非常肯定'request'將使用'req.method/stream.method'來確定執行的請求類型,因此您不必明確說明它。 – robertklep