If we want to be able to receive POST data, we have to instruct our server on how to accept and handle a POST request.
In a language where I/O blocking is the primary runtime behavior, accessing POST body data would be as straightforward as accessing a property.
For instance, in PHP we could access our POST values with $_POST['fieldname']; the execution thread would block until an array value was filled.
Contrariwise, Node provides a low level interaction with the asynchronous flow of HTTP data allowing us to interface with the incoming message body as a stream, leaving it entirely up to the developer to turn that stream into usable data.
Streams
For more information on streams, see Chapter 4, Using Streams