Я сам только изучаю ноду но думаю смогу тебе помочь.
Таким образом ты отправляешь данные:
fetch('/data', {method: 'POST', body: JSON.stringify(responceText)})
в body пихаешь к примеру json, как у меня, я закидыаю массив с объектами который преобразовывается в json.
Ну а на бэке принимаешь:
if (request.url === '/data') {
let data = "";
request.on('data', (chunk) => {
data += chunk;
}); // добавляем прослушиватель на событие data (никак не связано с /data).
//Так как ответ приходит частями (чанками) мы добавляем их
//в нашу пустую переменную data.
//После получения всех чанков срабатывает нижний прослушиватель request.on('end'
// который уже взаимодействует с полученной информацией которая была сохранена в переменной data
request.on('end', () => {
// Здесь у меня происходят действия а именно запись файла
fs.writeFile('data.json', data, () => {
console.log('data modified');
})
responce.end('Данные успешно получены'); // этот текст не выведется, но ответ будет завершен
})
}
Как видишь, в fetch мы запрашиваем url /data а на бэке просто при запрашивании этого url получаем данные и производим манипуляции. Способ хорош тем что ты можешь создавать разные сценарии, запрашивая разные url
/data /users /form и т.д. Это похоже на добавления прослушивателя событий.