We cannot process an uploaded file in the same way we process other POST data. When a file input is submitted in a form, the browser embeds the file(s) into a multipart message.
Multipart was originally developed as an email format, allowing multiple pieces of mixed content to be combined into one payload. If we attempted to receive the upload as a stream and write it to a file, we would have a file filled with multipart data instead of the file or files themselves.
We need a multipart parser, the writing of which is more than a recipe can cover. So we'll be using the multipart-read-stream module, which sits on top of the well-established busboy module, to convert each piece of the multipart data into an independent stream, which we'll then pipe to disk.