Express, Knex ve PostgreSQL ile Veritabanı CRUD İşlemleri

preview_player
Показать описание
Bu videoda Express back-end uygulamamızda Knex aracılığıyla gelen isteklerin içeriği ve türüne göre veritabanına nasıl kaydedileceğini öğreniyoruz.

#react #reactjs #reactdersleri #reacttutorial
Рекомендации по теме
Комментарии
Автор

Merhaba,
"callback hell" denilen şey oluşmaya başlamış kodunuzda. Şahsen ben o yüzden "async - await" kullanımını daha sade buluyorum. Siz sanırım alışkanlıktan dolayı "then - catch" yöntemini seviyorsunuz. :)

Bilmeyenler için;

router.delete('/:id', async (req, res, next) => {
let { id } = req.params;

// await sayesinde db'den kayıt dönene kadar bekleniyor
let silinecekActor = await Actor.findById(id);

if( silinecekActor ) {
let deleted = await Actor.deleteActor(id);
if ( deleted ) {
res.status(204).end();
}
next({ statusCode: 404, errorMessage: "Silinecek aktör bulunamadı." });
} else {
// silinecek aktör mevcut değil
}
})

tutkuns
Автор

Belirttiğiniz gibi next() sadece hata fırlatmak için değil, asıl kullanım amacı bir sonraki ara katmana geçiş içindir. Yani bir ara katmandayken hata işlemeyecek olsanız bile next() kullanmalısınız. Eğer kullanmazsanız, bu sefer next() kullanmamaktan dolayı hataya düşersiniz. Çünkü mevcut ara katman nereye gideceğini bilemez

Mesaj dönüşlerini next() yerine şu şekilde kullanıyoruz

res.json({
errorCode: 400,
errorMessage: 'ssdsdsdsd',
error
})
vs... gibi

Express kullandığınzıı varsayarak, minimum bir ara katman şu şekilde olmalıdır

const express = require('express')
const app = express();
app.use((req, res, next) ==> {
next()
})
.
.
.

kodunuz herhangi bir hata veya takılmaya uğramadan devam eder (bir sonuç veya hatada dönmez, taa ki en son katmana ulaşıp kendine bir response buluncaya kadar). Akışınızda bir response yoksa, bu sefer hataya düşersiniz.
Sonuç olarak next() metodu sadece hata fırlatmak için kullanılmaz. Ama ara katmanlar arasında mesaj taşıyabilir.

Bunu belirtmek istedim

kahramankarayel
Автор

Hocam çok teşekkürler, MERN bir proje geliştirmeyi düşünüyor musunuz?

umityasarturk
Автор

Merhabalar, addAktor aşamasında db'ye aktör ekleme işlemi yapıyor fakat aşağıdaki uyarı alınıyor;

Hatanın PostgreSql'den geldiğini düşünüyorum fakat giderme noktasında çözüm bulamadım.


{
"statusCode": 500,
"errorMessage": "Aktor eklerken bir hata oluştu",
"error": {
"length": 147,
"name": "error",
"severity": "ERROR",
"code": "22P02",
"where": "unnamed portal parameter $1 = '...'",
"file": "numutils.c",
"line": "235",
"routine": "pg_strtoint32"
}
}

AydnAkdeniz
Автор

Hocam merhaba postgresql hakkında sormak istediğim bir şey var,

bir masaüstü ve bir mobil app geliştirmek istiyorum ve bu iki uygulamada da ortak veri tabanı olarak postgresql'i kullanmak istiyorum. Bu video serisinde öğrendiğimiz postgresql yöntemleriyle bu mümkün mü ? bu video serisinde postgresql'i local veri tabanı mı yoksa bulut veri tabanı olarak mı kullandık tam emin olamadım. Cevap verebilirseniz sevinirim. Şimdiden teşekkürler, iyi çalışmalar dilerim.

mehmetalemdar
Автор

Hocam konuyla alakali degil ama fikrinizi cok merak ediyorum. Newsapi sitesinden verileri cekiyorum bir haber sitesi yapiyorum react ile. fetch ettigim link browserda calisiyor verileri json olarak goruyorum(chromda) fakat Vscode icinde ekrana yazdiramiyorum hatta console icinde bile goremiyorum failed to fecth diyor. yazim olarak yanlis yok. Neden derseniz url'yi degirstirip baska bir url koydugumda(sizin ulkeler apisi linki) gayet guzel bir sekilde code ve syntax calisiyor. isin icinden cikamadim hocam. Ne ye dikkat etmem gerekiyor? Fikir verirseniz ock sevinirim.Saygilar

kenansari