Only them. If you create a Http POST without using a form or without some library which creates a Http POST from your data, then you need choose an enctype= and join data yourselves. But forms can also prepare an HTTP request to send via JavaScript, for example via XMLHttpRequest. Making statements based on opinion; back them up with references or personal experience. The app.use() function is used to mount the specified middleware function(s) at the path which is being specified. Webconst express = require('express') app.use(express.json()) // <==== parse request body as JSON app.listen(8080) app.post('/test', (req, res) => { res.json({requestBody: req.body}) // Countering the Forcecage spell with reactions? Making statements based on opinion; back them up with references or personal experience. Avoiding a full page load can provide a smoother experience by avoiding network lag, and possible visual issues like flickering. The request function is from node.js request module. In the following example, we use the FileReader API to access binary data and then build the multi-part form data request by hand: As you see, the HTML is a standard