node.js MongoDB Örneklerle Öğretici
Çoğunlukla tüm günümüz web uygulamalarının arka ucunda bir tür veri depolama sistemi bulunur. Örneğin, bir web alışveriş uygulamasını ele alırsanız, bir ürünün fiyatı gibi veriler veritabanında depolanır.
Node.js çerçevesi hem ilişkisel (örneğin Oracle ve MS SQL Server) ve ilişkisel olmayan veritabanları (örneğin MongoDB). Bu dersimizde Node js uygulamaları içerisinden veritabanlarını nasıl kullanabileceğimizi göreceğiz.
Node.js ve NoSQL Veritabanları
Yıllar geçtikçe NoSQL veritabanı gibi MongoDB ve için MySQL veri depolamak için veritabanları olarak oldukça popüler hale geldi. Bu veritabanlarının her türlü içeriği, özellikle de her türlü formatta saklama yeteneği, bu veritabanlarını bu kadar ünlü kılan şeydir.
Node.js her ikisiyle de çalışma yeteneğine sahiptir MySQL ve MongoDB veritabanları olarak. Bu veritabanlarından herhangi birini kullanmak için Node paket yöneticisini kullanarak gerekli modülleri indirip kullanmanız gerekir.
Her Ticaretçi İçin Mükemmellik MySQL, gerekli modüle “mysql” adı verilir ve kullanım için MongoDB kurulması gereken modül “Mongoose”dur.
Bu modüller ile Node.js'de aşağıdaki işlemleri gerçekleştirebilirsiniz
- Bağlantı havuzunu yönetin – Burada bağlantı sayısını belirleyebilirsiniz. MySQL Node.js tarafından sürdürülmesi ve kaydedilmesi gereken veritabanı bağlantıları.
- Veritabanına bağlantı oluşturun ve kapatın. Her iki durumda da, "oluştur" ve "kapat" bağlantı yöntemleri yürütüldüğünde çağrılabilecek bir geri çağırma işlevi sağlayabilirsiniz.
- Veri almak için ilgili veritabanlarından veri almak amacıyla sorgular yürütülebilir.
- Veri ekleme, silme, güncelleme gibi veri manipülasyonları da bu modüller ile gerçekleştirilebilmektedir.
Geri kalan konularda nasıl çalışabileceğimize bakacağız. MongoDB içindeki veritabanları node.js.
kullanma MongoDB ve Node.js
Daha önceki başlıkta tartışıldığı gibi, MongoDB Node.js ile birlikte kullanılan en popüler veritabanlarından biridir.
Bu bölümde göreceğiz
Bir kişiyle nasıl bağlantı kurabiliriz? MongoDB veritabanı
Bir veritabanından veri okumanın yanı sıra bir veritabanına kayıt ekleme, silme ve güncelleme gibi normal işlemleri nasıl gerçekleştirebiliriz? MongoDB veri tabanı.
Bu bölümün amacı doğrultusunda, aşağıdakilere sahip olduğumuzu varsayalım. MongoDB veriler yerinde.
Veritabanı adı: EmployeeDB
Koleksiyon adı: Çalışan
Documents { {Employeeid : 1, Employee Name : Guru99}, {Employeeid : 2, Employee Name : Joe}, {Employeeid : 3, Employee Name : Martin}, }
- NPM Modüllerini Takma
Mongo'ya bir Node uygulaması içinden erişmek için bir sürücüye ihtiyacınız var. Çok sayıda Mongo sürücüsü mevcut ancak MongoDB en popülerleri arasında yer alıyor. Kurulumu yapmak için MongoDB modül, aşağıdaki komutu çalıştırın
npm mongodb'u kurun
- Bir bağlantı oluşturma ve kapatma MongoDB veri tabanı. Aşağıdaki kod parçacığı, bir bağlantının nasıl oluşturulacağını ve kapatılacağını gösterir. MongoDB veri tabanı.
Kod Açıklaması:
- İlk adım, require işlevi aracılığıyla gerçekleştirilen firavun faresi modülünü dahil etmektir. Bu modül yerleştirildikten sonra, veritabanına bağlantılar oluşturmak için bu modülde bulunan gerekli işlevleri kullanabiliriz.
- Daha sonra veritabanına bağlantı stringimizi belirliyoruz. Bağlantı dizesinde iletilen 3 anahtar değer vardır.
- Bunlardan ilki, bir mongoDB veritabanına bağlandığımızı belirten 'mongodb'dur.
- Sıradaki 'localhost', yerel makinedeki bir veritabanına bağlandığımız anlamına geliyor.
- Sırada bizim tanımladığımız veritabanının adı olan 'EmployeeDB' var. MongoDB veri tabanı.
- Bir sonraki adım aslında veritabanımıza bağlanmaktır. Connect işlevi URL'mizi alır ve bir geri çağırma işlevi belirtme olanağına sahiptir. Veritabanına bağlantı açıldığında çağrılacaktır. Bu bize veritabanı bağlantısının başarılı olup olmadığını öğrenme fırsatı verir.
- Fonksiyonda başarılı bir bağlantı kurulduğunu belirtmek için konsola “Bağlantı kuruldu” stringini yazıyoruz.
- Son olarak db.close ifadesini kullanarak bağlantıyı kapatıyoruz.
Yukarıdaki kod düzgün bir şekilde çalıştırılırsa konsola aşağıda gösterildiği gibi “Connected” stringi yazılacaktır.
- Bir veriyi sorgulamak MongoDB veritabanı - Kullanmak MongoDB sürücüden de veri alabiliriz MongoDB veritabanı.Aşağıdaki bölüm, Çalışan koleksiyonumuzdaki tüm belgeleri almak için sürücüyü nasıl kullanabileceğimizi gösterecektir. EmployeeDB veritabanımızda. Bu koleksiyonumuzdaki koleksiyon MongoDB Çalışanlarla ilgili tüm belgeleri içeren veritabanı. Her belgede, belgenin değerlerini tanımlamak için bir nesne kimliği, Çalışan adı ve çalışan kimliği bulunur.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { var cursor = db.collection('Employee').find(); cursor.each(function(err, doc) { console.log(doc); }); });
Kod Açıklaması:
- İlk adımda, MongoDb koleksiyonundan getirilen kayıtları gösteren bir imleç (İmleç, bir veritabanından getirilen çeşitli kayıtları işaret etmek için kullanılan bir işaretçidir. İmleç daha sonra veritabanındaki farklı kayıtlar arasında yineleme yapmak için kullanılır. Burada, veritabanından getirilen kayıtlara işaretçiyi depolamak için kullanılacak imleç adlı bir değişken tanımlıyoruz. ) oluşturuyoruz. Ayrıca, kayıtları getirmek için 'Çalışan' koleksiyonunu belirtme olanağına da sahibiz. find() işlevi, veritabanından getirilen tüm belgeleri almak istediğimizi belirtmek için kullanılır. MongoDB toplama.
- Şimdi imlecimizi yineliyoruz ve imleçteki her belge için bir işlev yürüteceğiz.
- Bizim fonksiyonumuz basitçe her belgenin içeriğini konsola yazdıracak.
Not: - Bir veritabanından belirli bir kaydı almak da mümkündür. Bu, find() işlevinde arama koşulu belirtilerek yapılabilir. Örneğin, çalışanın adının Guru99 olduğu kaydı getirmek istiyorsanız bu ifadeyi aşağıdaki gibi yazabileceğinizi varsayalım.
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Yukarıdaki kod başarıyla yürütülürse konsolunuzda aşağıdaki çıktı görüntülenecektir.
Çıktı:
Çıktıdan,
- Koleksiyondaki tüm belgelerin alındığını net bir şekilde görebileceksiniz. Bu, mongoDB bağlantısının (db) find() yöntemini kullanarak ve imleci kullanarak tüm belgelerde yineleme yaparak mümkündür.
- Koleksiyona belge ekleme – Belgeler, tarafından sağlanan insertOne yöntemi kullanılarak bir koleksiyona eklenebilir. MongoDB Aşağıdaki kod parçacığı bir belgenin bir mongoDB koleksiyonuna nasıl eklenebileceğini göstermektedir.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').insertOne({ Employeeid: 4, EmployeeName: "NewEmployee" }); });
Kod Açıklaması:
- Burada insertOne yöntemini kullanıyoruz. MongoDB Çalışan koleksiyonuna bir belge eklemek için kitaplık.
- Çalışan koleksiyonuna eklenmesi gerekenlerin belge ayrıntılarını belirtiyoruz.
Şimdi dosyanızın içeriğini kontrol ederseniz MongoDB veritabanında, Çalışan koleksiyonuna eklenen Çalışan Kimliği 4 ve Çalışan Adı "Yeni Çalışan" olan kaydı bulacaksınız.
Not: Kayıt veritabanına eklendiğinden ve burada hiçbir çıktı gösterilemediğinden konsol herhangi bir çıktı göstermeyecektir.
Verilerin veritabanına düzgün bir şekilde eklendiğini kontrol etmek için aşağıdaki komutları çalıştırmanız gerekir: MongoDB
- EmployeeDB'yi kullanın
- db.Employee.find({Çalışan kimliği :4 })
İlk ifade, EmployeeDb veritabanına bağlı olmanızı sağlar. İkinci ifade, çalışan kimliği 4 olan kaydı arar.
- Koleksiyondaki belgeleri güncelleme – Bir koleksiyondaki belgeler, tarafından sağlanan updateOne yöntemi kullanılarak güncellenebilir. MongoDB Aşağıdaki kod parçacığı, bir mongoDB koleksiyonundaki bir belgenin nasıl güncelleneceğini gösterir.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').updateOne({ "EmployeeName": "NewEmployee" }, { $set: { "EmployeeName": "Mohan" } }); });
Kod Açıklaması:
- Burada “updateOne” yöntemini kullanıyoruz. MongoDB mongoDB koleksiyonundaki bir belgeyi güncellemek için kullanılan kütüphane.
- Hangi dokümanın güncellenmesi gerektiğine dair arama kriterlerini belirliyoruz. Bizim durumumuzda “YeniÇalışan” ÇalışanAdı'nı içeren belgeyi bulmak istiyoruz.
- Daha sonra belgenin EmployeeName değerini "NewEmployee" yerine "Mohan" olarak ayarlamak istiyoruz.
Şimdi dosyanızın içeriğini kontrol ederseniz MongoDB Veritabanında, Çalışan koleksiyonunda güncellenen Çalışan Kimliği 4 ve Çalışan Adı "Mohan" olan kaydı bulacaksınız.
Veritabanındaki verilerin düzgün bir şekilde güncellendiğini kontrol etmek için aşağıdaki komutları çalıştırmanız gerekir: MongoDB
- EmployeeDB'yi kullanın
- db.Employee.find({Çalışan kimliği :4 })
İlk ifade, EmployeeDb veritabanına bağlı olmanızı sağlar. İkinci ifade, çalışan kimliği 4 olan kaydı arar.
- Koleksiyondaki belgeleri silme – Bir koleksiyondaki belgeler, tarafından sağlanan “deleteOne” yöntemi kullanılarak silinebilir. MongoDB Aşağıdaki kod parçacığı, bir mongoDB koleksiyonundaki bir belgenin nasıl silineceğini gösterir.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').deleteOne( { "EmployeeName": "Mohan" } ); });
Kod Açıklaması:
- Burada “deleteOne” yöntemini kullanıyoruz. MongoDB mongoDB koleksiyonundaki bir belgeyi silmek için kullanılan kütüphane.
- Hangi belgenin silinmesi gerektiğine dair arama kriterlerini belirliyoruz. Bizim durumumuzda ÇalışanAdı “Mohan” olan belgeyi bulup bu belgeyi silmek istiyoruz.
Şimdi dosyanızın içeriğini kontrol ederseniz MongoDB veritabanında, Çalışan koleksiyonundan silinmiş Çalışan Kimliği 4 ve Çalışan Adı "Mohan" olan kaydı bulacaksınız.
Veritabanındaki verilerin düzgün bir şekilde güncellendiğini kontrol etmek için aşağıdaki komutları çalıştırmanız gerekir: MongoDB
- EmployeeDB'yi kullanın
- db.Employee.find()
İlk ifade, EmployeeDb veritabanına bağlı olmanızı sağlar. İkinci ifade, çalışan koleksiyonundaki tüm kayıtları arar ve görüntüler. Burada kaydın silinip silinmediğini görebilirsiniz.
İle bir node express uygulaması nasıl oluşturulur? MongoDB içeriği depolamak ve sunmak
Hem ekspres hem de kullanımın birleşimiyle bir uygulama oluşturma MongoDB günümüzde oldukça yaygındır.
ile çalışırken JavaSenaryo Web tabanlı uygulamalarda normalde burada MEAN yığını terimi kullanılır.
- MEAN yığını terimi, bir dizi anlamına gelir. JavaWeb uygulamaları geliştirmek için kullanılan betik tabanlı teknolojiler.
- MEAN, şunun kısaltmasıdır: MongoDB, ExpressJS, AngularJS, ve Node.js.
Bu nedenle Node.js ve Node.js'nin nasıl çalıştığını anlamak her zaman iyidir. MongoDB Arka uç veritabanlarıyla etkileşime giren uygulamalar sunmak için birlikte çalışın.
“Express” ve “ ifadelerini nasıl kullanabileceğimize dair basit bir örneğe bakalım.MongoDB" birlikte. Örneğimizde aynı Çalışan koleksiyonunu kullanacağız. MongoDB ÇalışanDB veritabanı.
Artık kullanıcı tarafından talep edildiğinde verileri web sayfamızda görüntülemek için Express'i dahil edeceğiz. Uygulamamız Node.js üzerinde çalıştığında URL'ye göz atılması gerekebilir. http://localhost:3000/Employeeid.
Sayfa başlatıldığında Çalışan koleksiyonundaki tüm çalışan kimliği görüntülenecektir. Öyleyse bunu başarmamızı sağlayacak kod parçasını bölümler halinde görelim.
) 1 Adım Uygulamamızda kullanılması gereken tüm kütüphaneleri tanımlayın ki bu bizim durumumuzda hem MongoDB ve ekspres kütüphane.
Kod Açıklaması:
- Uygulamamızda kullanacağımız 'express' kütüphanemizi tanımlıyoruz.
- Kendimizi tanımlıyoruz'MongoDB' kütüphanemize bağlanmak için uygulamamızda kullanılacak MongoDB veri tabanı.
- Burada bağlanacağımız veritabanımızın URL’sini tanımlıyoruz.
- Son olarak, daha sonra tarayıcıda görüntülenmesi gereken çalışan kimlikleri koleksiyonumuzu depolamak için kullanılacak bir dize tanımlıyoruz.
) 2 Adım Bu adımda artık 'Çalışan' koleksiyonumuzdaki tüm kayıtları alacağız ve onlarla buna göre çalışacağız.
Kod Açıklaması:
- 'Employeeid' isimli uygulamamıza bir rota oluşturuyoruz. Yani herhangi biri şuraya göz attığında http://localhost:3000/Employeeid Uygulamamızda bu rota için tanımlanan kod pasajı çalıştırılacaktır.
- Burada 'Employee' koleksiyonumuzdaki tüm kayıtları db.collection('Employee').find() komutu aracılığıyla alıyoruz. Daha sonra bu koleksiyonu imleç adı verilen bir değişkene atadık. Bu imleç değişkenini kullanarak koleksiyonun tüm kayıtlarına göz atabileceğiz.
- Artık koleksiyonumuzun tüm kayıtları arasında gezinmek için Cursor.each() fonksiyonunu kullanıyoruz. Her kayıt için, her kayda erişildiğinde ne yapılacağına dair bir kod pasajı tanımlayacağız.
- Son olarak eğer dönen kayıt null değilse “item.Employeeid” komutu ile çalışanı aldığımızı görüyoruz. Kodun geri kalanı, sonuçlarımızın tarayıcıda düzgün şekilde görüntülenmesini sağlayacak uygun bir HTML kodu oluşturmak içindir.
) 3 Adım Bu adımda çıktımızı web sayfasına gönderip uygulamamızın belirli bir portta dinlenmesini sağlayacağız.
Kod Açıklaması:
- Burada önceki adımda oluşturduğumuz içeriğin tamamını web sayfamıza gönderiyoruz. 'Res' parametresi web sayfamıza yanıt olarak içerik göndermemizi sağlar.
- Node.js uygulamamızın tamamını 3000 numaralı portta dinlemesini sağlıyoruz.
Çıktı:
Çıktıdan,
- Çalışan koleksiyonundaki tüm çalışan kimliklerinin alındığını açıkça göstermektedir. Bunun nedeni, kullandığımız MongoDB veritabanına bağlanmak ve tüm Çalışan kayıtlarını almak için sürücü ve ardından kayıtları görüntülemek için "ekspres" kullanıldı.
İşte referansınız için kod
var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; var str = ""; app.route('/Employeeid').get(function(req, res) { MongoClient.connect(url, function(err, db) { var cursor = db.collection('Employee').find(); //noinspection JSDeprecatedSymbols cursor.each(function(err, item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }); res.send(str); db.close(); }); }); var server = app.listen(3000, function() {});
Not: imleç.each sürümünüze bağlı olarak kullanımdan kaldırılmış olabilir MongoDB sürücü. Sorunu aşmak için //noinspection JSDeprecatedSymbols'u imleç.each'in önüne ekleyebilirsiniz. Alternatif olarak forEach'i kullanabilirsiniz. ForEach kullanan örnek kod aşağıdadır
var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; var str = ""; app.route('/Employeeid').get(function(req, res) { MongoClient.connect(url, function(err, db) { var collection = db.collection('Employee'); var cursor = collection.find({}); str = ""; cursor.forEach(function(item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }, function(err) { res.send(err); db.close(); } ); }); }); var server = app.listen(8080, function() {});
ÖZET
- Node.js ile birlikte kullanılır NoSQL Birçok modern web uygulaması oluşturmak için veritabanları. Yaygın olarak kullanılan veritabanlarından bazıları şunlardır: MySQL ve MongoDB.
- Çalışmak için kullanılan ortak modüllerden biri MongoDB veritabanları 'adlı bir modüldürMongoDB.' Bu modül Node paket yöneticisi aracılığıyla kurulur.
- İle MongoDB Modül, bir koleksiyondaki kayıtları sorgulamak ve normal güncelleme, silme ve ekleme işlemlerini gerçekleştirmek mümkündür.
- Son olarak, modern uygulamalardan biri ekspres çerçeveyi birlikte kullanmaktır. MongoDB modern uygulamalar sunmak. Express çerçevesi, tarafından döndürülen verileri kullanabilir. MongoDB sürücü ve verileri buna göre web sayfasında kullanıcıya görüntüler.