@JordanBelford

Зачем нужны put и delete, если есть findOneAndDelete и findOneAndUpdate?

Хотелось бы знать, не проще будет использовать методы post и get, чем запариваться с put и delete? Ниже приведу пример кода где с помощью метода post, удаляю и изменяю данные в коллекции.
app.post('/:id',  async (req, res) => {
    const filter = req.params.id;
    const update = { text: 'changed1' };


    await Test.findOneAndUpdate(filter, update, {
        new: true
    });
    res.redirect('/')
})

app.post('/:id',  async (req, res) => {
   
    const id = req.params.id;

    Test.findOneAndDelete({_id: id}, function(err, doc){
        mongoose.disconnect();

        if(err) return console.log(err);

    });
    res.redirect('/')
})
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
StarinaDims
@StarinaDims
FrontEnd Developer
У них разная семантика:
Метод get подразумевает, что в сервер не будут внесены никакие изменения (безопасная операция)
Метод post позволяет внести на сервер какие-то данные и вернёт ссылку на них (если что-то создаётся)
Метод put позволяет разместить данные по заранее известному пути
Метод delete позволяет удалить данные по заранее известному пути

Плюс ко всему, отправление нескольких post запросов создаст несколько объектов. А эффект, оказываемый на сервер отправкой нескольких запросов put или delete, всегда равен эффекту от одного запроса на put или delite (если запросы полностью идентичны). Это свойство называется идемпотентность.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы