Как правильно передать 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 запрос с клиента или нужно будет менять код на сервере?
Если есть другой вариант как это можно реализовать, буду рад узнать иные варианты реализации такой идеи. Спасибо