Focus mode

Node.js

Search Alanı

Arama (Search) Alanı


Bu çalışmamızda Smartedu projemizin search (arama) alanını oluşturacağız.


Kullanacağımız yöntem ise şu daha öncesinde kategori ile oluşturduğumuz filtrelemeyi query den gelen "search" parametresiyle de birleştireceğiz. Önce query parametresini göndereceğimiz formu oluşturalım.


<form method="GET" id="site-searchform" action="/courses">
  <div>
    <input class="input-text form-control" name="search" id="search-k" placeholder="Search..." type="text">
    <button id="searchsubmit" value="Search" type="submit"></button>
  </div>
</form>


Şimdi oluşturduğumuz filtreyi query parametresiyle geliştirelim.


 const query = req.query.search;

    if(query) {
      filter = {name:query}
    }

    if(!query && !categorySlug) {
      filter.name = "",
      filter.category = null
    }

    const courses = await Course.find({
      $or:[
        {name: { $regex: '.*' + filter.name + '.*', $options: 'i'}},
        {category: filter.category}
      ]
    }).sort('-createdAt').populate('user');


Kategorileri de sıralamak için:


<% for (let i=0; i< categories.length; i++) { %>
  <li><a href="/courses?categories=<%= categories[i].slug %>"><%= categories[i].name %></a></li>
<% } %>	



Proje GitHub


Çalışma Özel GitHub

Patika Plus Banner

Yazılım Kariyerinde İlerlemeni Hızlandıracak Eğitimler

Kendi kendine yazılım öğrenirken zorlanıyor, takıldığın noktalarda bir mentore mi ihtiyaç duyuyorsun? Patika+ programlarımız ile 4-8 aylık yoğun eğitim kamplarına katıl, proje tabanlı canlı dersler ve sana özel hazırlanmış eğitimlerle gereken tüm yetenekleri kazan, iş hayatına başla!

Comments

You need to enroll in the course to be able to comment!