Отправить post запрос на сервер nodejs

Считываю значение из input и по нажатию на кнопку, хочу отправить это значение на сервер, чтобы потом проделать махинации и вернуть результат. Но post запрос не приходит на сервер.

main.js

showRegionsBtn.addEventListener("click",()=>{
    let inputValue = input.value;

    var request = new XMLHttpRequest();
    request.onreadystatechange = function () {
        if (request.readyState == 4 && request.status == 200) {
            callback(request.responseText);
        }
    };
console.log("передал гет")
request.open("POST","/sendRegion");
request.setRequestHeader('Content-Type', 'application/json');
var data = {inputValue};
request.send(JSON.stringify(data));

})

и попытка отладить в app.js

app.post('/sendRegion', async  (req, res, next)=>{
  console.log("sendRegion пришел")
  console.log(`${req.body}`);
})

upd 1.o


Ответы (1 шт):

Автор решения: Eugene X

Ответ видимо очевиден...

Ты не говоришь серверу что отправляешь JSON

// open request
xhr.open('POST', 'https://reqres.in/api/login');
// set `Content-Type` header
xhr.setRequestHeader('Content-Type', 'application/json');
// send rquest with JSON payload
xhr.send(JSON.stringify(json));

А так-же не парсишь JSON на стороне сервера.

app.use(express.json());

app.post('/test', function(req,res) {
  // Without `express.json()`, `req.body` is undefined.
  console.log(`${req.body}`);
});

ref:

→ Ссылка