Использование метода PUT для обновления существующей статьи во внешней базе данных
Короче говоря, мы используем restdb.io в школьном проекте, чтобы попрактиковаться в наших "базовых" навыках. Предполагается, что мы создадим простой веб-сайт, который позволит нам публиковать новые статьи, удалять существующие статьи и (моя основная задача) редактировать существующие статьи. Мы используем POST
метод для новых статей и PUT
метод для редактирования. Потому что я не понимаю природу PUT
метод, я просто использую его так же, как POST
метод
document.querySelector('button[name="save-edit"]').addEventListener("click", e => {
e.preventDefault();
let userTitle = document.querySelector('input[name="title"]');
let userDate = document.querySelector('input[type="date"]');
let userContent = document.querySelector('textarea[name="content"]');
let data = {
title: userTitle.value,
content: userContent.value,
date: userDate.value
};
let postData = JSON.stringify(articleData);
fetch("https://someRandomDatabase.restdb.io/rest/articles/" + articleData._id, {
method: "put",
headers: myHeaders,
body: postData
})
.then(d => d.json())
.then(t => {
console.log(t);
document.querySelector("#modal").style.left = "100vw";
document.querySelector('input[name="title"]').value = "";
document.querySelector('input[type="date"]').value = "";
document.querySelector('textarea[name="content"]').value = "";
showArticle(data);
document.querySelector('button[name="save-edit"]').disabled = true;
});
});
});
Это весь кусок кода, который заботится о редактировании UX-функции сайта (основная часть начинается с извлечения данных). Теперь, потому что у меня не так много теории относительно PUT
и все статьи, которые я нашел в Интернете, просто POST
против PUT
Я не уверен, где это неправильно. В своем текущем состоянии он просто добавляет новую статью в базу данных (так в основном так же, как POST
метод) вместо того, чтобы редактировать тот, на который я нажал.
PS: этот кусок кода на самом деле внутри функции под названием showArticle()
, который посвящен публикации новой статьи. Причина, по которой я вставил, заключается в том, что я передаю идентификатор статьи (таким образом, содержание)