Как правильно передать POST запрос на сервер с клиента

Всем привет, изучаю node js в связке с pug Пытаюсь сделать сайт с музыкой (не для коммерческих целей, для учебного проекта) Хотел узнать какие есть варианты в сложившейся ситуации: На сервере я рендерю страницу и передаю туда заготовленный объект с данными `

res.render('Note_List', {
                title: "All Tracks",
                note: results.track
            });

` В итоге на странице отображается список треков Аналогичным образом реализована страница с плэйлистами Что я хочу сделать: К примеру пользователь просматривает страницу с треками или нашел для себя нужный -> нажимает на раскрытие меню (реализовано рядом с треком) -> выбирает "добавить в плэйлист" (по аналогии, как это реализовано на youtube) -> ставит галку на плэйлисте -> трек добавлен в плэйлист Что я не совсем понимаю: Получится ли навесить событие на нажатие кнопки/значка на клиенте, отправку такого POST запроса, запрос получается большой, так как запись выполняется в несколько таблиц Получится ли реализовать это через fetch? На сервере POST запросы обрабатываются примерно таким образом (пример с созданием записи "трек"):

`

(req, res, next) => {
       -- часть с валидацией
        const new_note = new Tracks({
            name: req.body.name_track,
            rout: '/music/' + tempMusName,
            janrs_track: req.body.data_janr,
            description: req.body.description_track,
            userIdCreated: dataForFind
        });
        if (!errors.isEmpty()) {
            async.parallel({
                    tracks(callback) {
                        Tracks.find(callback);
                    },
                    janr(callback) {
                        Janrs.find(callback)
                    },
                },
                (err, results) => {
                    if (err) {
                        return next(err)
                    }
                    for (const janr_data of results.janr) {
                        if (new_note.janrs_track.includes(janr_data._id)) {
                            janr_data.checked = "true";
                        }
                    }
                    res.render('track_add', {
                        title: "Создание трека",
                        tracks_values: results.tracks,
                        janr: results.janr,
                        new_note,
                        errors: errors.array(),
                    });
                });
            return;
        }
        new_note.save((err) => {
            if (err) {
                return next(err);
            } else {
                try {
                    req.files.track.mv('public/music/' + tempMusName, (err) => {
                        if (err) {
                            console.log(err)
                        } else {
                            console.log(tempMusName)
                        }
                    })
                } catch (e) {
                    console.log(e)
                }
                res.redirect(new_note.url);
            }
        });
    },

`

Будет ли в таком случае работать аналогичный код для добавления трека в плэйлист + fetch POST запрос с клиента или нужно будет менять код на сервере?

Если есть другой вариант как это можно реализовать, буду рад узнать иные варианты реализации такой идеи. Спасибо


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