не могу получить данные из формы с помощью node.js

новичок в node js, учусь получать данные из формы, делала все по урокам, все работало, но при попытке повторить возникает проблема, хочется разобраться.

есть файл с сервером

const http = require('http');
const fs = require('fs');
const path = require('path');

//server

http.createServer((req, res) => {
    console.log(req.url);

    //корень
    if(req.url === '/') {
        sendRes('index.html', 'text/html', res);
    }
    //формы
    else if (req.url === '/save-form') {
        console.log('sdfsfds');
        let body = '';
        req.on('data', chunk => {
            body += chunk.toString();
        });
        req.on('end', () => {
            console.log(body);
        })
    }
    //статика
    else {
        sendRes(req.url, getContentType(req.url), res);
    }

}).listen(3000, () => {
    console.log('server start');
})

// отправка ресурсов

function sendRes(url, contentType, res) {
    let file = path.join(__dirname, url);
    fs.readFile(file, (err, content) => {
        if (err) {
            res.writeHead(404);
            res.write('file not found');
            res.end();
            console.log(`error 404 ${file}`);
        }
        else {
            res.writeHead(200, {'Content-Type': contentType});
            res.write(content);
            res.end();
            // console.log(`200 ${file}`);
        }
    })
}

// тип контента

function getContentType(url) {
    switch (path.extname(url)) {
        case ".html":
            return "text/html";
        case ".css":
            return "text/css";
        case ".js":
            return "text/javascript";
        case ".json":
            return "application/json";
        default:
            return "application/octate-stream";
    }
}

index с простой формой

<form>
    <div>
        <input type="text" name="name" placeholder="Имя">
        <input type="number" name="tel" placeholder="Телефон">
    </div>
    <div>
        <button class="button">Отправить</button>
    </div>
</form>

и файл отправки формы

function submitForm(event) {
    event.preventDefault();

    let form = document.querySelector('form').elements;

    fetch('/save-form', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        body: JSON.stringify({
            "input-0": form[0].value,
            "input-1": form[1].value,
        })
    })
    .then(res => res.text())
    .then(res => console.log(res));
}

document.querySelector('form').addEventListener('submit', submitForm);

если я все правильно понимаю (поправьте), при отправке формы вызывается функция submitForm, в которая должна передавать url c /save-form, а сервер в свою очередь подхватывает /save-form и выполняет необходимую ветку в условии. но по факту url выглядит как http://localhost:3000/?name=Julie&tel=89119112233, отрабатывает ветка else и я получаю в консоли error 404 E:\Julie\template?name=Julie&tel=89119112233

что я делаю не так? уже несколько раз пересмотрела уроки, кажется, что повторила все верно, не могу найти свою ошибку и вообще понять, в чем она заключается


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