KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
In the below code I can't figure out why req.pipe(res) doesn't work, and yet doesn't throw an error either. A hunch tells me it's due to nodejs' asynch behavior, but this is a very simple case without a callback. What am I missing? http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.write('Echo service: \nUrl: ' + req.url); res.write('\nHeaders:\n' + JSON.stringify(req.headers, true, 2)); res.write('\nBody:\n'); req.pipe(res); // does not work res.end(); }).listen(8000); Here's the curl: ➜ ldap-auth-gateway git:(master) ✗ curl -v -X POST --data "test.payload" --header "Cookie: token=12345678" --header "Content-Type:text/plain" localhost:9002 Here's the debug output (see that body was uploaded): About to connect() to localhost port 9002 (#0) Trying 127.0.0.1... connected Connected to localhost (127.0.0.1) port 9002 (#0) POST / HTTP/1.1 User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8x zlib/1.2.5 Host: localhost:9002 Accept: */* Cookie: token=12345678 Content-Type:text/plain Content-Length: 243360 Expect: 100-continue HTTP/1.1 100 Continue HTTP/1.1 200 OK Content-Type: text/plain Date: Sun, 04 Aug 2013 17:12:39 GMT Connection: keep-alive Transfer-Encoding: chunked And the service responds without echoing the request body: Echo service: Url: / Headers: { "user-agent": "curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8x zlib/1.2.5", "host": "localhost:9002", "accept": "*/*", "cookie": "token=12345678", "content-type": "text/plain", "content-length": "243360", "expect": "100-continue" } ... and final curl debug is Body: Connection #0 to host localhost left intact Closing connection #0 Additionally, when I stress test
Tags (comma-separated)
Save Edits
Cancel