Skip to content

Latest commit

 

History

History
52 lines (47 loc) · 1.75 KB

File metadata and controls

52 lines (47 loc) · 1.75 KB

Kurs Silmek

Bu çalışmamızda Smatedu projemizde bir kursu nasıl sileceğiz, onun üzerine konuşacağız. Bunun için PCAT projesinde de yapmış olduğumuz üzere method-override paketini kullanacağız. Öncelikle bu paketi indirelim.

npm i method-override

sonrasında ilgili ara yazılımı (middleware) ekleyeceğiz.

app.use(
  methodOverride('_method', {
    methods: ['POST', 'GET'],
  })
);

Sırada ise bu silme işlemini yapacağımız fonksiyonu yazalım.

exports.deleteCourse = async (req, res) => {
  try {    

    const course = await Course.findOneAndRemove({slug:req.params.slug})

    req.flash("error", `${course.name} has been removed successfully`);

    res.status(200).redirect('/users/dashboard');

  } catch (error) {
    res.status(400).json({
      status: 'fail',
      error,
    });
  }
};

courseRoute.js dosyasında ilgili yönlendirmeyi yapacağız.

router.route('/:slug').delete(courseController.deleteCourse);

İlgili template dosyasında bu silme işleminin gerçekleştirecek butonu yerleştiriyoruz. Aynı zamanda burada silme işlemi için onay da isteyeceğiz.

<div class="clearfix">
  <ul style="list-style-type: none;">
    <li style="float: left;"><button class="btn btn-primary rounded-0 text-white"><span>UPDATE</span></button></li>
    <li style="float: right;"><a href="/courses/<%= courses[i].slug %>?_method=DELETE" 
      onclick="return confirm('ARE YOU SURE')"
      class="btn btn-danger rounded-0 text-white"><span>DELETE</span></a></li>
  </ul>
</div>