Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Sequelize, Oracle, PostgreSQL, MySQL, MariaDB, SQLite ve daha fazlası gibi ilişkisel veritabanları için kullanımı kolay bir API sağlayan bir Node.js nesne-ilişki eşleştiricisidir (ORM).

PostgreSQL, kapsamlı özellikleri, mükemmel güvenliği ve ölçeklenebilirliği ile tanınan, yaygın olarak kullanılan bir açık kaynaklı ilişkisel veritabanı yönetim sistemidir (RDBMS).

PostgreSQL, JavaScript de dahil olmak üzere birçok programlama diliyle uyumludur ve bu da onu web ve veri odaklı uygulamalar için ideal bir seçim haline getirir. Burada Sequelize kullanarak Node.js'de bir Postgres veritabanı kurmayı öğreneceksiniz.

1. Adım: Bağımlılıkları Yükleme

PostgreSQL'i kullanmadan önce sisteminize kurmanız gerekir. PostgreSQL'i indirmek için şuraya gidin: PostgreSQL web sitesi ve işletim sisteminizi seçin. macOS'ta bu işlem sırasında sorunlarla karşılaşırsanız şuraya göz atın: macOS'ta PostgreSQL'i kurmak.

instagram viewer

Alternatif olarak, PostgreSQL'i aşağıdakiler gibi platformlardan yararlanarak bulutta kullanabilirsiniz: ElephantSQL PostgreSQL'i bir hizmet olarak sunan.

Ardından, yükleyin devamını getirmek aşağıdaki komutu çalıştırarak:

npm kurulumu devam ettir

Ardından, aşağıdaki komutu çalıştırarak PostgreSQL veritabanı sürücüsünü kurun:

npm kurulum pg pg-hstore

2. Adım: Bir PostgreSQL Veritabanına Bağlanma

Projenizin kaynak dizininde bir yapılandırma dosya. İçinde yapılandırma klasör oluştur db.js dosya. Bu dosya, Node.js uygulamanızı bir PostgreSQL veritabanına bağlayan tüm kodu içerecektir.

Sonra, senin içinde db.js dosya, içe aktarma devamı itibaren devamını getirmek.

sabit { Devam } = gerekmek("devam et");

Ardından, bir devamı misal. Bu örnek, bağımsız değişken olarak veritabanı adı, kullanıcı adı ve parola gibi bağlantı parametrelerini alır. Alternatif olarak, bağımsız değişken olarak tek bir bağlantı URI'si alır.

Örneğin:

// Bağlantı parametreleri
sabit devam etmek = yeni Devamı('veri tabanı', 'Kullanıcı adı', 'şifre')

// URI ile
sabit devam etmek = yeni Sequelize (process.env. POSTGRESQL_DB_URI)

Ek olarak, bu yapıcı, isteğe bağlı bağımsız değişken olarak bir yapılandırma nesnesi alır.

Ardından, aşağıdaki kodu ekleyerek sıralı bağlantınızı test edin. db.js dosya:

sabit testDbConnection = zaman uyumsuz () => {
denemek {
beklemek neticelendirme.authenticate();
konsol.kayıt("Bağlantı başarıyla kuruldu.");
} yakalamak (hata) {
konsol.hata("Veritabanına bağlanılamıyor:", hata);
}
};

Yukarıdaki kod bloğu şunu çağırır: devamını getirmek.kimlik doğrulaması() bağlantının tamam olup olmadığını test etme yöntemi ve "Bağlantı başarıyla kuruldu." varsa teselli etmek. Bir bağlantı hatası varsa, hatayla birlikte "Veritabanına bağlanılamıyor:" yazdırır.

Son olarak, devam örneğini dışa aktarın ve testDbConnection işlev.

modül.ihracat = { metrekare: devam ettir, testDbConnection };

3. Adım: Sequelize Modeli Oluşturma

Projenizin kaynak dizininde bir modeller dosya. Bu klasör, tüm ardıllaştırma modellerinizi içerecektir. Ardından, bir model dosyası oluşturun. Dosyaya verdiğiniz ad, modelin temsili hakkında bilgi vermelidir.

Model dosyanızda, neticelendirme örneğini içe aktarın.

// örnek.js
sabit { kare } = gerekmek("../config/db");

Sonra, içe aktar Veri tipleri itibaren devamını getirmek.

sabit { Veri Türleri } = gerekmek("devam et");

Veri tipleri modelinizdeki her özellik için gerekli veri türünü ayarlamanıza olanak tanır.

Veritabanınızdaki bir tabloyu temsil eden yeni bir ardıllaştırma modeli oluşturabilirsiniz. tanımlamak sekelileştirme örneğinizdeki yöntem.

bu tanımlamak yöntem iki bağımsız değişken alır: model adı ve bir öznitelik nesnesi. Model adı, modelin adını temsil eder. Nitelikler nesnesi, veritabanının sütunlarını temsil eder ve her özellik bir sütunu temsil eder.

İşte bir devam modeli örneği:

sabit Kullanıcı = sq.define("kullanıcı", {
e-posta: {
tür: DataTypes. SİCİM,
izin verNull: YANLIŞ,
birincil anahtar: doğru,
},

Ad Soyad: {
tür: DataTypes. SİCİM,
},

yaş: {
tür: DataTypes. TAM SAYI,
},

çalışan: {
tür: DataTypes. BOOLE,
varsayılan değer: YANLIŞ,
},
});

Yukarıdaki kod bloğu bir kullanıcı modeli olan e-posta, Ad Soyad, yaş, Ve istihdam özellikler.

bu e-posta özellik, boş olamayacak bir dize türüdür (allowNull: yanlış) ve aynı zamanda birincil anahtar olarak işlev görür. kullanıcı masa (birincilAnahtar: doğru). bu Ad Soyad ve yaş özellik bir dizedir (Veri tipleri. SİCİM) ve tamsayı türü (Veri tipleri. TAM SAYI), sırasıyla. bu istihdam özelliği, varsayılan değeri olan bir boolean türüdür. YANLIŞ, bu, belirtilmezse, veritabanında otomatik olarak false olarak ayarlanacağı anlamına gelir.

Sonra, şu numarayı arayın: senkronizasyon modelinizdeki yöntem. Bu yöntem, bir yapılandırma nesnesini bağımsız değişken olarak alır. Yapılandırma nesnesindeki seçeneklere bağlı olarak, senkronizasyon yöntem şunları yapabilir:

  • User.sync(): Tablo yoksa oluşturun ve varsa hiçbir şey yapmaz.
  • User.sync({ force: true }): Tabloyu oluşturun ve zaten varsa ilkini bırakın.
  • User.sync({ değiştir: doğru }): Veritabanındaki tablonun mevcut durumunu kontrol edin ve modele uyması için tabloda gerekli değişiklikleri yapın.

Örneğin:

User.sync().then(() => {
konsol.kayıt("Kullanıcı Modeli senkronize edildi");
});

Yukarıdaki kod bloğu, aşağıdakiler için veritabanı tablosunu oluşturur: kullanıcı yoksa model olur ve varsa hiçbir şey yapmaz.

Son olarak, modelinizi dışa aktarın:

modül.exports = Kullanıcı;

PostgreSQL Veritabanını Sorgulama

Sequelize, ham yazmadan PostgreSQL veritabanınızla etkileşim kurmanıza izin veren çeşitli yöntemler sunar. SQL komutları.

Verileri PostgreSQL'e Kaydetme

Verileri bir PostgreSQL veritabanına kaydetmek için, yaratmak yöntemini modelinize ekleyin ve PostgreSQL modelini bağımsız değişken olarak uygulayan bir nesneyi iletin.

Örneğin:

sabit mike = User.create({
e-posta: "[email protected]",
Ad Soyad: "Mike Smith",
yaş: 30,
çalışan: doğru,
});

Yukarıdaki kod bloğu bir kullanıcı örneği Mike veritabanınızda ve otomatik olarak benzersiz bir kimlik oluşturur.

PostgreSQL'den Veri Alma

Veriler, bir PostgreSQL veri tabanından sıralı hale getirme kullanılarak çeşitli şekillerde alınabilir, ancak bu, almak istediğiniz verinin yapısına bağlıdır.

Verileri almak için en yaygın yöntemler şunlardır: Birini bul Ve hepsini bul yöntemler. bu hepsini bul belirli bir sorguyu karşılayan tüm veri örneklerini döndürürken Birini bul sorguyu karşılayan ilk örneği döndürür.

Örneğin:

// Tüm kullanıcıları bul
sabit kullanıcılar = beklemek User.findAll();

Yukarıdaki kod tümünü döndürür kullanıcı veritabanındaki örnekler.

Döndürülen verileri kullanarak filtreleme yapabilirsiniz. Neresi ifade. Bu ifade, sorguya belirli koşullar eklemenizi sağlar. Sorgunuz yalnızca bu koşulları karşılayan örnekleri döndürür.

Örneğin:

User.findAll({
Neresi: {
çalışan: YANLIŞ
}
});

Yukarıdaki kod tümünü döndürür kullanıcı örnekleri ile onların istihdam özellik ayarlandı YANLIŞ veritabanında.

PostgreSQL'de Verileri Güncelleme

PostgreSQL veri tabanındaki verileri şu komutu çağırarak güncelleyebilirsiniz: güncelleme yöntem ve bağımsız değişken olarak bir filtre geçirme.

Örneğin:

beklemek Kullanıcı.güncelleme({ istihdam: doğru }, {
Neresi: {
çalışan: YANLIŞ
}
});

Yukarıdaki kod tümünü değiştirir kullanıcı olan örnekler istihdam değeri YANLIŞ ile doğru.

Alternatif olarak, değiştirmek istediğiniz özellikleri manuel olarak değiştirerek ve kaydetmek Örnek üzerinde yöntem.

Örneğin:

sabit kullanıcıMike = beklemek User.findOne({ Neresi: { e-posta: "[email protected]" } });

eğer(kullanıcıMike !== hükümsüz) {
userMike.email = "[email protected]"
beklemek userMike.save()
}

Yukarıdaki kod, "[email protected]" e-postasına sahip bir kullanıcı için veritabanını sorgular. Birini bul yöntem. Kullanıcı bulunursa, e-posta özelliğini "[email protected]" olarak yeniden atar ve kaydetmek Veritabanını güncelleme yöntemi.

PostgreSQL Üzerinden Veri Silme

PostgreSQL'deki verileri şunu çağırarak silebilirsiniz: tahrip etmek yöntem ve bağımsız değişken olarak bir filtre geçirme.

Örneğin:

beklemek User.destroy({
Neresi: {
e-posta: "[email protected]"
}
});

Yukarıdaki kod, “[email protected]” e-posta adresine sahip bir kullanıcı için veritabanını sorgular ve kullanıcıyı veritabanından siler.

Sequlize ile PostgreSQL Kullanmanın Yararları

Bir PostgreSQL veritabanıyla etkileşime geçmek için ham SQL sorguları yazmak zor olabilir. Sequelize ile modelleri kolayca tanımlayabilir, aralarında ilişkilendirmeler oluşturabilir ve veritabanını basit ve sezgisel bir API ile sorgulayabilirsiniz. Alternatif olarak, ham SQL sorguları yazma zahmetine girmeden bir PostgreSQL veritabanıyla etkileşim kurmak için TypeORM gibi diğer ORM'leri kullanabilirsiniz.