Задать вопрос
@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('/')
})
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Merion Academy
    MongoDB для разработчиков и DevOps
    4 месяца
    Далее
  • Нетология
    Разработчик на Python совместно с МФТИ
    7 месяцев
    Далее
  • Академия Эдюсон
    FullStack-разработчик: тариф PRO
    14 месяцев
    Далее
Решения вопроса 1
StarinaDims
@StarinaDims
FrontEnd Developer
У них разная семантика:
Метод get подразумевает, что в сервер не будут внесены никакие изменения (безопасная операция)
Метод post позволяет внести на сервер какие-то данные и вернёт ссылку на них (если что-то создаётся)
Метод put позволяет разместить данные по заранее известному пути
Метод delete позволяет удалить данные по заранее известному пути

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

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

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