Bir CRUD API, verileri dört temel veritabanı işlemi aracılığıyla yönetir: oluşturma, okuma, güncelleme ve silme. Yalnızca Express ve bir PostgreSQL veritabanı ile basit bir CRUD API'si oluşturabilirsiniz.
PostgreSQL'i bağlayacağınız bir Express sunucusu oluşturarak başlayın. Ardından, CRUD işlevlerini oluşturun ve bunları API uç noktalarına bağlayın. Bunu yaptıktan sonra, Node'u PostgreSQL'e bağlayabilecek ve her rotada veritabanı sorguları gerçekleştirebileceksiniz.
API Oluşturmak için Ön Koşullar
Bu eğiticiyi takip etmek için şunları yapmalısınız:
- Node'u makinenize kurun.
- PostgreSQL sunucusunu makinenize kurun.
- hakkında temel bilgiye sahip olmak Express.js.
Bir Ekspres Sunucu Oluşturun
İle Ekspres sunucu oluştur, yeni bir dizin oluşturup girerek başlayın:
mkdir notları
CD notlar
Ardından npm'yi başlatın:
npm başlangıç -y
Bu komut bir paket.json notlar klasöründeki dosya. Son olarak, Express'i yükleyin.
npm Yüklemek ifade etmek
adlı yeni bir dosya oluşturun. index.js ve aşağıdaki kodu ekleyin.
const ifade = gerekmek("ifade etmek");
const uygulama = ekspres();uygulama.kullanmak(ifade etmek.urlencoding({
Genişletilmiş: doğru
}));
uygulama.kullanmak(ifade etmek.json())
app.listen (3000, () => konsol.log("3000 numaralı bağlantı noktasında dinleme"));
Bu, 3000 numaralı bağlantı noktasında dinleyen yeni bir sunucu oluşturacaktır.
PostgreSQL Veritabanı Oluşturun
noteb adlı bir PostgreSQL veritabanı oluşturmak için psql komut isteminde aşağıdaki komutu yürütün.
postgres=# CREATE DATABASE not edildib;
için bu komutu çalıştırın tüm Postgres veritabanlarını listele ve noteb veritabanını oluşturduğunuzu kontrol edin:
postgres=# \l
Veritabanına Bağlan
Her şey sırayla, Node uygulamanızı PostgreSQL sunucusuna bağlayın. node-Postgres modülünü kullanabilirsiniz.
Npm ile yüklemek için aşağıdakileri çalıştırın:
npm Yüklemek sayfa
İyi bir uygulama olarak, veritabanına ayrı bir dosyada bağlanın.
adlı yeni bir dosya oluşturun. db.js ve aşağıdakileri ekleyin.
const { Müşteri } = gerekmek("pg");
const { kullanıcı, ana bilgisayar, veritabanı, parola, bağlantı noktası } = gerekmek("./dbConfig");const müşteri = yeni Müşteri({
kullanıcı
ev sahibi,
veri tabanı,
şifre,
Liman,
});
müşteri.bağlamak();
modül.ihracat = müşteri;
Burada, veritabanıyla iletişim kurmak için kullanacağınız bağlantı dizesini dışa aktarıyorsunuz. adlı bir yapılandırma dosyasından veritabanı bağlantı ayarlarını okuduğunuzu unutmayın. dbConfig.js. Bu nedenle, dbConfig.js oluşturun ve aşağıdaki verileri buna ekleyin.
modül.ihracat = {
kullanıcı: "{dbKullanıcı}",
ev sahibi: "{dbHost}",
veri tabanı: "not edilmişb",
şifre: "{dbParola}",
bağlantı noktası: 5432,
};
Veritabanı ayrıntılarını kendi yerel değerlerinizle değiştirmeyi unutmayın.
PostgreSQL Tablosu Oluşturun
psql komut isteminde, notlar adlı bir tablo oluşturun. Başlangıç olarak, notb veritabanına \c komutunu kullanarak bağlanın.
postgres=# \c not edilmişb
Ardından, CREATE TABLE komutunu kullanarak bağlı veritabanında bir tablo oluşturun.
not edilmişb=# CREATE TABLO notları (
ID SERİ BİRİNCİL ANAHTAR,
not VARCHAR(255)
);
Bu tablo oldukça basittir. Yalnızca otomatik oluşturulmuş bir birincil anahtar olan bir kimliğe ve not adlı bir metin alanına sahiptir.
Not Oluştur
Routelarda CRUD işlemlerini gerçekleştirmek yerine ayrı bir dosyada veritabanı ile etkileşime girecek fonksiyonlar oluşturun.
adlı bir yardımcı dosya oluşturun. helper.js ve bağlantı nesnesini db.js'den içe aktarın.
const müşteri = gerekmek("./db");
createNote() işlevini oluşturmak için aşağıdaki kodu kullanın.
const createNote = (gerekli, res) => {
denemek {
const { not } = gerekli gövde;if (!not) {
atmakHata("Not gönder içinde istek gövdesi");
}
müşteri.sorgu(
"SOKMAKİÇİNE notlar (not) DEĞERLER ($1)",
[Not],
(hata, veri) => {
res.durum(201).json({
hata: hükümsüz,
İleti: "Yeni not oluşturuldu",
});
}
);
} tutmak (hata) {
res.durum(500).json({
hata: hata.İleti,
mesaj: "Başarısız oluşturmakyeni Not",
});
}
};
Bu işlev önce istek gövdesinin bir not içerip içermediğini kontrol eder. Not yoksa, bir hata verir.
Bir not oluşturmak için işlev, INSERT yan tümcesini kullanır. Boş bir hata mesajı ve başarılı olursa bir başarı mesajı içeren bir JSON nesnesi döndürür.
Tüm Notları Al
Tablodan tüm notları almak için SELECT * yan tümcesini kullanın.
const getNotes = (gerekli, öz) => {
denemek {
müşteri.sorgu("NOTLARDAN * SEÇİN", (hata, veri) => {
eğer (hata) atmak hata;
res.durum(200).json({
hata: hükümsüz,
notlar: veri.satırlar,
});
});
} tutmak (hata) {
res.durum(500).json({
hata: hata.İleti,
notlar: hükümsüz,
});
}
};
getNotes(), sorgu başarılı olursa, yanıt nesnesindeki notlar dizisini gönderir.
Kimlikle Not Al
API ayrıca, kimliğe göre bir not döndüren bir uç noktaya sahip olacaktır. helper.js'de bir getNoteById() işlevi ekleyin.
const getNoteById = (gerekli, öz) => {
denemek {
const { id } = gerekli.paramlar;
müşteri.sorgu("SELECT * FROM notları WHERE id=$1", [id], (hata, veri) => {
eğer (hata) atmak hata;
res.durum(200).json({
hata: hükümsüz,
Not: veri.satırlar[0],
});
});
} tutmak (hata) {
res.durum(500).json({
hata: hata.İleti,
Not: hükümsüz,
});
}
};
Bu işlev, notu ve bir hata nesnesini içeren bir JSON nesnesi döndürür.
Kimliğe göre Notu Güncelle
Bir notu güncellemek için bir nota ve o notun kimliğine ihtiyacınız vardır. İstek gövdesinden notu ve URL'den kimliği alacaksınız.
updateNoteById() işlevi, mevcut bir notu yeni bir notla güncellemek için UPDATE yan tümcesini kullanır.
const updateNoteById = (gerekli, res) => {
denemek {
const { id } = gerekli.paramlar;
const { not } = gerekli gövde;
müşteri.sorgu(
"GÜNCELLEME notlar AYARLAMAK not = $1NEREDEİD = $2",
[not, kimlik],
(hata, veri) => {
eğer (hata) atmak hata;
res.durum(201).json({
hata: hükümsüz,
İleti: "Güncellenmiş not",
});
}
);
} tutmak (hata) {
res.durum(500).json({
hata: hata.İleti,
İleti: "Not güncellenemedi",
});
}
};
Bu işlev, tablo güncellenirse bir başarı mesajı, güncellenmemişse bir hata mesajı döndürür.
Kimliğe göre Notu Sil
Tablodan ID ile bir notu silmek için aşağıdaki kodu kullanın.
const deleteNote = (gerekli, res) => {
denemek {
const { id } = gerekli.paramlar;
müşteri.sorgu("DELETE FROM notlar WHERE id=$1", [id], (hata, veri) => {
eğer (hata) atmak hata;
res.durum(200).json({
hata: hükümsüz,
İleti: "Not silindi",
});
});
} tutmak (hata) {
res.durum(500).json({
hata: hata.İleti,
İleti: "Not silinemedi",
});
}
};
Artık tüm CRUD işlevlerini oluşturduğunuza göre, bunları dışa aktarın.
helper.js'de aşağıdakini ekleyin.
modül.ihracat = { createNote, getNotes, getNoteById, updateNoteById, deleteNote };
onları içe aktaracaksın index.js API uç noktaları oluştururken.
API Rotaları Oluşturun
Son adım, içinde API uç noktaları oluşturmaktır. index.js CRUD işlemlerinin her biri için.
helper.js dosyasını içe aktararak başlayın.
const db = gerekmek("./yardımcı")
Ardından, her uç noktayı oluşturun.
app.get("/notes", db.getNotes);
app.get("/note/:id", db.getNoteById);
app.put("/note/:id", db.updateNoteById);
uygulama.post("/note", db.createNote);
uygulama.silme("/note/:id", db.deleteNote);
Veritabanınızı Güncellemek için REST API
İşiniz bittiğinde, Postman gibi bir REST istemcisi kullanarak veya birim testleri yazarak API'nizin çalışıp çalışmadığını kontrol edebilirsiniz. Beş uç noktanın da beklediğiniz gibi çalıştığından emin olmalısınız.
Ayrıca pgAdmin aracını kullanarak veritabanına eklediğiniz verileri inceleyebilir ve yönetebilirsiniz. Veritabanı yönetimini gerçekleştirmeyi ve PostgreSQL sunucularıyla etkileşim kurmayı kolaylaştıran bir GUI uygulamasıdır.