The purpose
Passing JSON data from client-side JavaScript to a Node.js server.
Implementation
Client-side implementation
The client-side implementation will be as follows.
The url
variable represents the destination URL and should be modified as needed.
The obj
variable represents the JSON object (in O
const Http = new XMLHttpRequest();
const url='http://127.0.0.1/test';///Destination
Http.open("POST", url);////////open for POST. GET method cannot send Contents
let obj = {number:20, aaa:"ああああ"};////JSON to send
Http.send(JSON.stringify(obj));////convert from JSON to String, then send it
Server-side implementation
The implementation will be as follows:
When the callback passed to createServer
is invoked (when a Request arrives), the Request’s body (contents) has not yet been received. Therefore, it’s necessary to set data
and end
event listeners for the request.
const server = http.createServer((req, res) => {
if (req.url == "/test") {
let body = [];
req.on('data', (chunk) => { /////get Contents with async
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString();
let obj = JSON.parse(body); //// from string to json
});
} else{
///process for other request
}
});

The server successfully retrieved the following JSON data.
Result
we are able to successfully send JSON data from the client to the Node.js server.
Reference

Get request body from node.js's http.IncomingMessage
I'm trying to implement a simple HTTP endpoint for an application written in node.js. I've created the HTTP server, but now I'm stuck on reading the request con...
comment