Express Routing Özelliği Nasıl Kullanılır?

Sdílet
Vložit
  • čas přidán 20. 08. 2024
  • Bu videoda POST ve DELETE HTTP metodlarını kullanarak yeni endpoint'ler oluşturduk ve aynı adres altındaki endpoint'leri tek bir Express Router altında topladık.
    GitHub: github.com/rea...
    Twitter: / reactdersleri
    #react #reactjs #reactdersleri #reacttutorial #express #router #routing #restfulAPI

Komentáře • 24

  • @nuuklu3189
    @nuuklu3189 Před rokem

    çok güzel anlatmışsınız. Emeğinize sağlık

  • @muhammetaliguzel1684
    @muhammetaliguzel1684 Před 3 měsíci

    post yapınca 500Internal Server Error hatası veriyor kodlara baktım sorun görünmüyor. get yapınca veriler geliyor

  • @burakk7830
    @burakk7830 Před 3 lety

    16:24 teki ödev için örnek cevabım:
    server.put("/aktorler/:id", (req, res) => {
    const guncelle_aktor_id = req.params.id;
    const guncelle_aktor_body = req.body;
    const guncel_aktor = data.find(
    (aktor) => aktor.id === Number(guncelle_aktor_id)
    );
    if (guncel_aktor) {
    if (guncelle_aktor_body.isim) {
    guncel_aktor.isim = guncelle_aktor_body.isim;
    }
    if (guncelle_aktor_body.filmler) {
    guncel_aktor.filmler = guncelle_aktor_body.filmler;
    }
    if (guncelle_aktor_body.isim || guncelle_aktor_body.filmler) {
    res.status(200).json(guncel_aktor);
    } else {
    res.status(404).json({
    errorMessage:
    "isim veya filmler anahtarlarına ait bir güncelleme isteğini doğru formatta yapmadınız ",
    });
    }
    } else {
    res
    .status(404)
    .json({ errorMessage: "Düzenlemeye calistiginiz aktor bulunamadi" });
    }
    });

    • @mehmetaliakdemir7849
      @mehmetaliakdemir7849 Před 3 lety +1

      Bu yaptığın doğru fakat put için değilde patch için olabilirdi .Put diyorsak tüm keyleri(isim,filmler) almak required(zorunlu) olmalıdır. Ama ben burada sadece ismi de güncelleyebiliyorum ya da sadece filmleri de güncelleyebiliyorum. :)

    • @burakk7830
      @burakk7830 Před 3 lety +1

      @@mehmetaliakdemir7849 Dogrudur, ben orada aralarindaki farki bilmeden yapmistim.
      Example between PUT and PATCH
      PUT
      If I had to change my firstname then send PUT request for Update:
      { "first": "Nazmul", "last": "hasan" } So, here in order to update the first name we need to send all the parameters of the data again.
      PATCH:
      Patch request says that we would only send the data that we need to modify without modifying or effecting other parts of the data. Ex: if we need to update only the first name, we pass only the first name.

  • @cenksezgin7055
    @cenksezgin7055 Před 3 lety

    Hocam konular,kavramlar kafamda net değil. Bu yüzden saçmalarsam kusura bakmayın.
    Güncelleme işlemlerinde,
    filmlere yeni film eklemek istediğimde req.body içinde gelen değerler ile eski değerler yer değiştirmiş oluyor.
    RestApi mantığı açısından soruyorum,
    eski_aktor.filmler kaybolmasın yeni değer eklensin istersek bunu frontend tarafından req.body içine eski filmleri ekleyip mi yollamak mantıklı?
    yoksa patch ile yapılabiliyor mu?

    • @burakk7830
      @burakk7830 Před 3 lety

      Merhaba, şu yöntem işinize yarayabilir: Yeni bir route
      router.put("/filmekle/:id", (req, res) => {
      const guncelle_aktor_id = req.params.id;
      const eklenecek_film = req.body.filmler;
      let guncel_aktor = data.find(
      (aktor) => aktor.id === Number(guncelle_aktor_id)
      );
      if (guncel_aktor) {
      let filmler = guncel_aktor.filmler.concat(eklenecek_film);
      guncel_aktor.filmler = [...new Set(filmler)]; //aynı film birden fazla gönderilirse diğer gönderilenler eklenmesin diye
      res.status(200).json(guncel_aktor);
      } else {
      res.status(404).json({
      errorMessage: "eklenemedi ",
      });
      }
      });

  • @ahmetatalay6434
    @ahmetatalay6434 Před 3 lety

    hocam güncelleme işlemini :
    const id = parseInt(req.params.id);
    const updateActor = req.body;
    const selectActor = data.find((aktor) =>
    aktor.id === id
    );
    if (selectActor) {
    data.map(item => item.id === id ? {...item,...updateActor}:item)
    }
    yapmaya çalışıyorum ama güncelleme olmuyor

    • @kerimcetinbas6094
      @kerimcetinbas6094 Před 3 lety

      Array.map yeni bir array döner,
      if (selectActor) {
      data = data.map(item => item.id === id ? {...item,...updateActor}:item)
      }

  • @kerimcetinbas6094
    @kerimcetinbas6094 Před 3 lety

    hocam silmek için Array.shift metodunu kullanabilirsiniz.
    Aktorler.shift(Actorler.findIndex( aktor => aktor.id === silinecek_id ), 1)

    • @ReactDersleri
      @ReactDersleri  Před 3 lety +2

      .shift() metodu diziyi mutate ediyor. React ile bu tarz islemleri yaparken istenmeyen hatalarla karsilasmamak icin "immutability" prensibine bagli kalmanizi oneririm.

  • @mertcancetinkaya7648
    @mertcancetinkaya7648 Před 4 lety

    Merhaba hocam öncelikle videolar için teşekkürler. React üzerinden bir uygulama geliştiriyorum. Yaptığım uygulamayı birden fazla kullanıcının kullanması gerekiyor. Uygulamada değişiklik yapan kullanıcının ekranında değişikliği algılıyor ve servera veri gönderiliyor. Fakat öteki kullanıcıların serverdan sürekli veriyi çekmesi gerekiyor. Bunun için belirli aralıklarla servera istek mi atmam gerekiyor ?

    • @ReactDersleri
      @ReactDersleri  Před 4 lety +1

      İhtiyacınız olan şey web socket. socket.io sitesine gidin ve kullanımını araştırın işinizi görecektir.
      Servera belli aralıklarla istek atmak çalışır ama sunucuyu yorar, gereksiz trafik harcar. Socketler bu iş için geliştirilmiş. Orada kullanıcı için bir bağlantı açıyor ve bağlanılan yerde değişiklik olduğunda onu kullanıcıya servis ediyor.

    • @mertcancetinkaya7648
      @mertcancetinkaya7648 Před 4 lety

      Cevap için teşekkürler. Socket ile geliştirme videosu gelirse cok mutlu olurum. Genelde chat uygulaması yapıyorlar. Farklı bir proje süper olur. Kolay gelsin

    • @ReactDersleri
      @ReactDersleri  Před 4 lety

      Chat ile sizin anlattığınız şey aynı: servera istek göndermeye gerek kalmadan verinin otomatik olarak servis edilmesi.

  • @sakirtufan8712
    @sakirtufan8712 Před 3 lety

    Hocam put requesti böyle yaptim ama ne dersiniz.
    server.put('/aktorler/:id', (req, res) => {
    const { id } = req.params;
    let yeni_aktor = req.body;
    let eski_aktor = data.find(item => item.id === Number(id));
    if (eski_aktor) {
    for (i in yeni_aktor) {
    eski_aktor[i] = yeni_aktor[i]
    }
    res.status(200).send(yeni_aktor)
    } else {
    res.status(404).json({ errorMessage: 'Güncellemek istediginiz aktor bulunamadi' })
    }
    })

    • @ReactDersleri
      @ReactDersleri  Před 3 lety +1

      data[i]= yeni_aktor olmasi gerekmez mi?

    • @GozcuMustafa
      @GozcuMustafa Před 9 měsíci

      @@ReactDersleri Hocam merhaba, dediğiniz şekilde deneyince eski_aktor için herhangi bir değişim yapmayacak ama yani eski_aktor[i] = yeni_aktor[i] şeklinde olması gerekmez mi ? Yoksa yanlış mı düşünüyorum. Ben de şu şekilde yaptım; // UPDATE
      server.put("/aktorler/:id",(req,res)=>{
      const {id} = req.params
      const duzenlenen_aktor = req.body
      const aktor = data.find((aktor) => aktor.id === parseInt(id))
      if(aktor){
      for (i in duzenlenen_aktor){
      aktor[i] = duzenlenen_aktor[i]
      }
      res.status(200).json(duzenlenen_aktor)
      }else{
      res.status(404).send("aradığınız aktor bulunamadı bu yüzden güncelleme yapılamaz")
      }
      })

  • @koray.tuncer
    @koray.tuncer Před 2 lety

    Merhaba Hocam bu şekilde bir yol ile çözümledim.
    server.put("/aktorler/:id",(req, res)=>{
    const id = req.params.id
    const yeniGelecekAktor = req.body
    const degisecekAktor = data.find(
    (aktor) => aktor.id === Number(id))
    if(degisecekAktor){
    degisecekAktor.isim = yeniGelecekAktor.isim
    degisecekAktor.filmler = yeniGelecekAktor.filmler
    res.status(200).send(degisecekAktor)
    }else{
    res.status(404).json({
    errorMessage: "Değiştirme İşlemi Başarısız"
    })
    }
    })

  • @omerdemir9716
    @omerdemir9716 Před rokem

    server.put('/actors/:id', (req, res)=>{
    let update_actor_id = req.params.id;
    let update_actor_body = req.body;
    console.log("updated_Actor_body",update_actor_body);
    selected_actor = data.find((actor) => actor.id === Number(update_actor_id));
    if(selected_actor){
    selected_actor.name = update_actor_body.name;
    selected_actor.movies = update_actor_body.movies;
    res.status(200).json({errorMessage : "false", process: "update actor process is succesfull"});
    }else{
    res.status(404).send(errorMessage, "There is no actor for update");
    }
    });