Node.js uygulamanızı Mongoose kullanarak bir MongoDB veritabanıyla entegre edin.
Bir MongoDB veritabanındaki verileri yönetmek, özellikle karmaşık veri modelleriyle uğraşırken zor olabilir. MongoDB şemasız bir veritabanıdır, yani veriler belirli bir yapıyı takip etmeden eklenebilir. Bu esneklik, MongoDB'yi büyük miktarda veri depolamak için ideal hale getirirken aynı zamanda veri yönetimini de zorlaştırır.
Mongoose, MongoDB'ye kaydedilen verilerin tutarlı ve doğru biçimlendirilmiş olmasını sağlamaya yardımcı olan şema tabanlı bir çözüm sunar. Mongoose ile veri modelleriniz için, verinin yapısını ve bu verinin nasıl biçimlendirilmesi gerektiğine ilişkin kuralları belirten bir şema tanımlayabilirsiniz. Burada Mongoose'u bir Ekspres uygulamada nasıl kullanacağınızı keşfedeceksiniz.
Geliştirme Ortamınızı Kurma
Mongoose'u kullanmadan önce, onu projenize bir bağımlılık olarak kurmalısınız.
Aşağıdaki komutu çalıştırarak Mongoose'u kurabilirsiniz:
npm mongoose'u kur
Projenize Mongoose'u kurduktan sonra, uygulamanızı Mongoose kullanarak MongoDB'ye bağlamanız gerekir.
Mongoose kullanarak bir MongoDB Veritabanına bağlanır bağlamak bağımsız değişken olarak bir MongoDB URI alan yöntem.
İşte bir örnek:
// index.js
sabit firavun faresi = gerekmek("firavun faresi")firavun faresi.connect("mongodb://127.0.0.1:27017/örnek", () =>
konsol.kayıt("Veritabanına başarıyla bağlanıldı")
);
Yukarıdaki kod bloğu yerel bir MongoDB bulut sunucusuna bağlanır ve uygulamanız MongoDB'ye başarıyla bağlandığında bir başarı mesajı günlüğe kaydeder.
Firavun Faresi Modeli Oluşturma
Mongoose modeli, Mongoose'da bir MongoDB koleksiyonuyla etkileşim kurmanıza izin veren şema tabanlı bir sınıftır.
Bir Mongoose şeması, bir MongoDB koleksiyonunda depolayabileceğiniz belgelerin yapısını tanımlar. ve bu belgede belge oluşturmak, okumak, güncellemek ve silmek için bir arabirim sağlar. Toplamak.
Bir Firavun faresi modeli tanımladığınızda, özellikler, türleri ve tüm doğrulamalar dahil olmak üzere o koleksiyondaki belgeler için şemayı tanımlarsınız.
İşte bir Firavun faresi modeli örneği kullanıcı Toplamak:
sabit firavun faresi = gerekmek("firavun faresi");
sabit userSchema = firavun faresi. Şema({
isim: {
tip: Sicim,
gerekli: [doğru, "İsim gerekli"],
},
e-posta: {
tip: Sicim,
gerekli: doğru,
},
yaş: {
tip: Sayı,
doğrula: {
doğrulayıcı: işlev (değer) {
geri dönmek değer > 0;
},
İleti: () =>"Lütfen geçerli bir yaş girin",
},
},
});sabit Kullanıcı = mongoose.model("Kullanıcı", kullanıcı Şeması);
modül.exports = Kullanıcı;
Yukarıdaki kod bloğu, üç özelliğe sahip bir Mongoose şemasını tanımlar: isim, e-posta, Ve yaş. Her özelliğin, bir değeri belirtilen alanına eşlerken izlemeniz gereken tanımlı bir kurallar dizisi vardır. İşte kuralların bir dökümü:
- isim: isim mülkiyet bir sicim olarak işaretlenen tür gerekli, yani bu alana bir dize eşlemeniz gerekir. Alanı boş bırakırsanız veya farklı bir JavaScript veri türü, Gelincik bir hata atar.
- e-posta: e-posta mülkiyet bir sicim olarak işaretlenen tür gerekli. Başka bir doğrulama kuralı yoktur, ancak pratikte e-postanın doğru olup olmadığını doğrulamanız gerekir. E-postayı doğrulayabilirsiniz normal ifadeleri kullanma veya sınıf doğrulayıcı gibi üçüncü taraf kitaplıkları.
- yaş: yaş mülkiyet bir sayı alana eşlenen değerin sıfırdan büyük olup olmadığını kontrol eden özel bir doğrulama kuralı ile yazın. Değer doğrulamayı geçemezse, Mongoose mesajla birlikte bir hata atar. Lütfen geçerli bir yaş girin. olarak işaretlenmediği için bu alanı boş bırakabilirsiniz. gerekli.
Şemayı tanımladıktan sonra kod bloğu, adında bir Mongoose modeli oluşturur. kullanıcı kullanarak firavun faresi.model() yöntem. Bu yöntem iki argüman alır: modelin adı ve belgeler için kullanılacak şema.
Son olarak, kullanıcı model, uygulamanızın diğer bölümlerine aktarılır.
Mongoose Kullanarak MongoDB ile Etkileşim
Uygulamanız bir MongoDB veritabanına bağlıyken ve oluşturduğunuz ve uygulamanızın diğer bölümleri tarafından erişilebilen modelinizle, Mongoose tarafından sağlanan yöntemleri kullanarak veritabanınızla etkileşim kurabilirsiniz.
Bu eğitim için, gerçekleştireceksiniz Bir MongoDB veritabanında CRUD işlemleri.
Not: Mongoose modelinizi CRUD işlemlerini gerçekleştireceğiniz herhangi bir modüle aktardığınızdan emin olun.
Örneğin:
// yönlendirici.js
sabit kullanıcı = gerekmek("./userModel")
Belge Oluşturma
Belge, bir modelin örneğidir. Mongoose'u kullanarak bir belge oluşturup MongoDB'ye kaydetmenin birkaç yolu vardır.
İlk olarak, modelinizin sınıfının bir örneğini oluşturabilir ve ardından kaydetmek Bunun üzerine yöntem.
Örneğin:
//yeni bir kullanıcı oluşturuluyor
izin vermek kullanıcı = yeni kullanıcı({
isim,
e-posta,
yaş,
});
//Kullanıcı veritabanına kaydediliyor
kullanıcı
.kaydetmek()
.Daha sonra(() => {
konsol.kayıt("Kullanıcı başarıyla oluşturuldu");
})
.yakalamak((hata) => {
// hata işle
});
Yukarıdaki kod bloğu yeni bir kod oluşturur ve kaydeder. kullanıcı MongoDB veritabanınıza belge.
kullanarak da veritabanınıza veri kaydedebilirsiniz. yaratmak yöntem. bu yaratmak yöntemi, modelinizi başlatır ve kaydetmek Bunun üzerine yöntem. Sırasıyla, daha önce bahsedilen tekniğin iki işlemini birleştirir.
Örneğin:
User.create({ name, email, age }, (err, data) => {
eğer (hata) fırlatmakyeniHata("İç Sunucu Hatası");
konsol.kayıt(`Kullanıcı başarıyla oluşturuldu: ${veri}`);
});
Yukarıdaki kod bloğu yeni bir kullanıcı argüman olarak iletilen özelliklere sahip belge yaratmak yöntem.
Alternatif olarak, kullanarak veri tabanınıza veri kaydedebilirsiniz. ekleBirçok yöntem. Bu yöntem yalnızca verileri toplu olarak kaydetmek için ideal olsa da.
Örneğin:
User.insertMany(
[
{ ad, e-posta, yaş },
{ isim_1, e-posta_1, yaş_1 },
],
(hata, sonuç) => {
eğer (hata) {
// hata işle
} başka {
//sonuçları gönder
}
}
);
Yukarıdaki kod bloğu, iki yeni belge oluşturur. kullanıcı argüman olarak iletilen diziyi kullanan koleksiyon ekleBirçok yöntem.
Belge Okuma
Mongoose's kullanarak MongoDB veritabanınızdaki tüm kayıtlı belgelere erişebilirsiniz. bulmak yöntem.
Örneğin:
Kullanıcı.find({})
.Daha sonra((veri) => {
konsol.log (veri);
})
.yakalamak((hata) => {
// hata işle
});
Yukarıdaki kod bloğu, içindeki tüm belgeleri döndürür. kullanıcı Toplamak.
Find yöntemine bir sorgu ileterek, belirli bir sorguyla eşleşen tüm belgeleri de bulabilirsiniz.
Örneğin:
// yaşın en az 18 olduğu tüm belgeleri bul
Kullanıcı.bul({ yaş: { $gte: 18 } })
.Daha sonra((veri) =>konsol.log (veri))
.yakalamak((hata) =>konsol.log (hata));
Yukarıdaki kod bloğu, yaş değeri 18'den büyük olan tüm belgeleri döndürür. kullanıcı Toplamak.
Alternatif olarak, kullanarak tek kayıtları okuyabilirsiniz. findById yöntemi ve bir belge kimliğini bağımsız değişken olarak geçirme veya Birini bul yöntem ve bağımsız değişken olarak bir filtre geçirme.
Örneğin:
//findById
User.findById (id, (hata, sonuç) => {
eğer (sonuç) konsol.log (sonuç);
eğer (hata) konsol.hata (hata)
});
//findOne
User.findOne({ e-posta: "[email protected]" }).Daha sonra((kullanıcı) => {
eğer (!kullanıcı) {
// hata işle
}
//cevap Gönder
});
Yukarıdaki kod bloğunda, findById yöntem, eşleşen kimlikle belgeyi döndürür. bu Birini bul yöntem, e-postaya sahip ilk belgeyi döndürür [email protected].
Belge Güncelleme
Mongoose kullanarak MongoDB'deki bir belgeyi güncelleyebilirsiniz. findByIdAndUpdate yöntem. Bu yöntem, bir kimliği ve güncellenmiş ayrıntılara sahip bir nesneyi alır.
Örneğin:
User.findByIdAndUpdate (id, req.body, (err, doc) => {
eğer (belge) {
//Cevap Gönder
}
eğer (hata) {
// hata işle
}
});
Yukarıdaki kod bloğu, sağlanan kimlikle sağlanan güncelleme nesnesiyle () eşleşen bir kimliğe sahip belgeyi günceller.req.body).
Belge Silme
Mongoose kullanarak MongoDB'deki bir belgeyi silebilirsiniz. findByIdAndDelete yöntem. Bu yöntem, bir kimliği bağımsız değişken olarak alır ve ilgili kimliğe sahip belgeyi siler.
Örneğin:
User.findByIdAndDelete (id, (hata, sonuç) => {
eğer (sonuç) {
// sonucu işle
}
eğer (hata) {
//Hata işle
}
});
Yukarıdaki kod bloğu, verilen kimliğe sahip bir belgeyi MongoDB veritabanınızdan siler.
Ekspres Uygulamalarınızda Firavun Faresi Kullanma
Bu makale, Mongoose'u ekspres uygulamanızda nasıl kullanabileceğinize dair bir genel bakış sunmaktadır. MongoDB ile nasıl bağlantı kurabileceğinizi, MongoDB veritabanınıza kaydedilen verileri nasıl yapılandırıp doğrulayabileceğinizi ve basit CRUD işlemlerini nasıl gerçekleştirebileceğinizi kapsar.
Express uygulamalarınızda Mongoose'u kullanarak, uygulamanız ve bir MongoDB veritabanı arasındaki etkileşimleri basitleştirebilir ve kolaylaştırabilirsiniz.