Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
aşağıdakiler için geçerlidir:
MongoDB
Important
Mevcut bir MongoDB uygulamasını geçirmek mi yoksa MongoDB Sorgu Dili (MQL) özelliklerini kullanmak mı istiyorsunuz? Azure DocumentDB'ye göz atın.
99,999% kullanılabilirlik hizmet düzeyi sözleşmesi (SLA), anında otomatik ölçeklendirme ve birden çok bölgede otomatik yük devretme ile yüksek ölçekli senaryolar için bir veritabanı çözümü mü arıyorsunuz? NoSQL için Azure Cosmos DB'yi göz önünde bulundurun.
Bu çok bölümlü öğreticide Express ve Angular ile bir Node.js uygulaması oluşturma ve bunu MongoDB için Azure Cosmos DB API'siyle yapılandırılmış Azure Cosmos DB hesabınıza bağlama gösterilmektedir. Bu makale öğreticinin 5. Bölümünü açıklamakta ve 4. Bölümü temel almaktadır.
Öğreticinin bu bölümünde şunları yapacaksınız:
- Azure Cosmos DB'ye bağlanmak için Mongoose kullanın.
- Azure Cosmos DB bağlantı dizesini alın.
- Hero modelini oluşturun.
- Hero verilerini almak için Hero hizmetini oluşturun.
- Uygulamayı yerel olarak çalıştırın.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Prerequisites
Bu eğitime başlamadan önce, Bölüm 4'teki adımları tamamlayın.
Bu öğretici, Azure CLI'yi yerel olarak çalıştırmanızı gerektirir. Azure CLI 2.0 veya sonraki bir sürümünü yüklemiş olmanız gerekir. Sürümü bulmak için
az --versionkomutunu çalıştırın. Azure CLI'yı yüklemeniz veya yükseltmeniz gerekiyorsa bkz . Azure CLI 2.0'ı yükleme.Bu eğitim, uygulamanın adım adım nasıl oluşturulacağını size gösterir. Tamamlanmış projeyi indirmek isterseniz, tamamlanmış uygulamayı github'daki angular-cosmosdb deposundan alabilirsiniz.
Bağlanmak için Mongoose kullanma
Mongoose, MongoDB ve Node.js için bir nesne veri modelleme (ODM) kitaplığıdır. Mongoose'u kullanarak Azure Cosmos DB hesabınıza bağlanabilirsiniz. Mongoose'u yüklemek ve Azure Cosmos DB'ye bağlanmak için aşağıdaki adımları kullanın:
MongoDB ile konuşmak için kullanılan bir API olan mongoose npm modülünü yükleyin.
npm install mongoose@5.13.15 --saveImportant
MongoDB için Azure Cosmos DB, Mongoose'un
5.13.15sürümüne kadar uyumludur. Daha fazla bilgi için mongoose GitHub deposundaki sorun tartışmasını inceleyin.Sunucu klasöründe mongo.js adlı bir dosya oluşturun. Azure Cosmos DB hesabınızın bağlantı ayrıntılarını bu dosyaya ekleyeceksiniz.
Aşağıdaki kodu mongo.js dosyasına kopyalayın. Kod aşağıdaki işlevleri sağlar:
Mongoose gerektirir.
Mongo sözünü, ES6/ES2015 ve sonraki sürümlerde yerleşik olarak bulunan temel sözü kullanacak şekilde geçersiz kılar.
Hazırlama, üretim veya geliştirme aşamasında olmanıza bağlı olarak belirli şeyleri ayarlamanıza olanak tanıyan bir env dosyasını çağırır. Bu dosyayı sonraki bölümde oluşturacaksınız.
env dosyasında ayarlanan MongoDB bağlantı dizesi içerir.
Mongoose’u çağıran bir bağlanma işlevi oluşturur.
const mongoose = require('mongoose'); /** * Set to Node.js native promises * Per https://mongoosejs.com/docs/promises.html */ mongoose.Promise = global.Promise; const env = require('./env/environment'); // eslint-disable-next-line max-len const mongoUri = `mongodb://${env.accountName}:${env.key}@${env.accountName}.documents.azure.com:${env.port}/${env.databaseName}?ssl=true`; function connect() { mongoose.set('debug', true); return mongoose.connect(mongoUri, { useMongoClient: true }); } module.exports = { connect, mongoose };
Gezgin bölmesinde, sunucu altında environment adlı bir klasör oluşturun. Ortam klasöründe environment.js adlı bir dosya oluşturun.
mongo.js dosyasında, ,
dbNamevekeyparametreleri içincosmosPortdeğerleri eklememiz gerekir. Aşağıdaki kodu environment.js dosyasına kopyalayın:// TODO: replace if yours are different module.exports = { accountName: 'your-cosmosdb-account-name-goes-here', databaseName: 'admin', key: 'your-key-goes-here', port: 10255 };
Bağlantı dizesini al
Uygulamanızı Azure Cosmos DB'ye bağlamak için uygulamanın yapılandırma ayarlarını güncelleştirmeniz gerekir. Ayarları güncelleştirmek için aşağıdaki adımları kullanın:
Azure portalında, Azure Cosmos DB hesabınızın bağlantı noktası numarasını, Azure Cosmos DB hesap adını ve birincil anahtar değerlerini alın.
environment.js dosyasında değerini
port10255 olarak değiştirin.const port = 10255;environment.js dosyasında,
accountNamedeğerini öğreticinin Bölüm 4'te oluşturduğunuz Azure Cosmos DB hesabınızın adıyla değiştirin.Terminal penceresinde aşağıdaki CLI komutunu kullanarak Azure Cosmos DB hesabı için birincil anahtarı alın:
az cosmosdb keys list --name <cosmosdb-name> -g myResourceGroup<cosmosdb-name>, öğreticinin 4. Bölümünde oluşturduğunuz Azure Cosmos DB hesabının adıdır.
Birincil anahtarı, değeri olarak
keydosyasına kopyalayın.
Artık uygulamanız Azure Cosmos DB'ye bağlanmak için gerekli tüm bilgilere sahiptir.
Hero modeli oluşturma
Ardından, bir model dosyası tanımlayarak Azure Cosmos DB'de depolayacak verilerin şemasını tanımlamanız gerekir. Verilerin şemasını tanımlayan bir Hero modeli oluşturmak için aşağıdaki adımları kullanın:
Gezgin bölmesinde, sunucu klasörünün altında hero.model.js adlı bir dosya oluşturun.
Aşağıdaki kodu hero.model.js dosyasına kopyalayın. Kod aşağıdaki işlevleri sağlar:
- Mongoose gerektirir.
- Bir kimliği, adı ve tanımı olan yeni bir şema oluşturur.
- Şemayı kullanarak bir model oluşturur.
- Modeli aktarır.
- Koleksiyonu Heroes olarak adlandırın (Mongoose çoğul adlandırma kurallarına göre koleksiyonun varsayılan adı olan Heros yerine).
const mongoose = require('mongoose'); const Schema = mongoose.Schema; const heroSchema = new Schema( { id: { type: Number, required: true, unique: true }, name: String, saying: String }, { collection: 'Heroes' } ); const Hero = mongoose.model('Hero', heroSchema); module.exports = Hero;
Hero hizmeti oluşturma
Hero modelini oluşturduktan sonra verileri okumak ve listeleme, oluşturma, silme ve güncelleştirme işlemlerini gerçekleştirmek için bir hizmet tanımlamanız gerekir. Azure Cosmos DB'den verileri sorgulayan bir Hero hizmeti oluşturmak için aşağıdaki adımları kullanın:
Gezgin bölmesinde, sunucu klasörünün altında hero.service.js adlı bir dosya oluşturun.
Aşağıdaki kodu hero.service.js dosyasına kopyalayın. Kod aşağıdaki işlevleri sağlar:
- Oluşturduğunuz modeli alır.
- Veritabanına bağlanır.
- Üzerinde bir sorgu tanımlamak için
docqueryyöntemini kullanarak tüm kahramanları döndüren birhero.finddeğişkeni oluşturur. - 200 yanıt durumuna sahip tüm kahramanların listesini almak için
docquery.execişleviyle bir sorgu çalıştırır. - Durum 500 ise hata iletisini geri gönderir.
- Kahramanları getirir, çünkü modülleri kullanıyoruz.
const Hero = require('./hero.model'); require('./mongo').connect(); function getHeroes() { const docquery = Hero.find({}); docquery .exec() .then(heroes => { res.status(200).json(heroes); }) .catch(error => { res.status(500).send(error); return; }); } module.exports = { getHeroes };
Rotaları yapılandırın
Ardından, alma, oluşturma, okuma ve silme isteklerinin URL'lerini işlemek için yollar ayarlamanız gerekir. Yönlendirme yöntemleri geri çağırma işlevlerini (işleyici işlevleri olarak da adlandırılır) belirtir. Bu işlevler, uygulama belirtilen uç noktaya ve HTTP yöntemine bir istek aldığında çağrılır. Hero hizmetini eklemek ve yollarınızı tanımlamak için aşağıdaki adımları kullanın:
Visual Studio Code'daki routes.js dosyasında, örnek kahraman verilerini gönderen
res.sendişlevi yorum satırı haline getirin.heroService.getHeroesişlevini çağırmak için bir satır ekleyin.router.get('/heroes', (req, res) => { heroService.getHeroes(req, res); // res.send(200, [ // {"id": 10, "name": "Starlord", "saying": "oh yeah"} // ]) });routes.js dosyasında hero
requirehizmeti:const heroService = require('./hero.service');hero.service.js dosyasında,
getHeroesvereqparametrelerini alacak şekilderesişlevini aşağıdaki gibi güncelleyin:function getHeroes(req, res) {
Önceki kodu gözden geçirmek ve adım adım incelemek için bir dakika ayıralım. İlk olarak düğüm sunucusunu ayarlayan index.js dosyasına giriyoruz. Rotalarınızı ayarlayıp tanımladığını fark edin. Ardından, routes.js dosyanız hero hizmetiyle iletişime geçer ve ona, getHeroes gibi işlevlerinizi alması ve isteği ve yanıtı iletmesi gerektiğini söyler. hero.service.js dosyası modeli alır ve Mongo'ya bağlanır. Ardından çağırdığımızda getHeroes komutunu yürütür ve 200 yanıtını döndürür.
Uygulamayı çalıştırma
Ardından, aşağıdaki adımları kullanarak uygulamayı çalıştırın:
Visual Studio Code'da tüm değişikliklerinizi kaydedin. Sol tarafta Hata Ayıkla düğmesini
ve ardından Hata Ayıklamayı Başlat düğmesini
seçin.Şimdi tarayıcıya geçin. Geliştirici araçları ve Ağ sekmesini açın. adresine
http://localhost:3000gittiğimizde uygulamamızı görürsünüz.
Henüz uygulamada depolanan kahraman yok. Bu öğreticinin sonraki bölümünde put, push ve delete işlevlerini ekleyeceğiz. Ardından Azure Cosmos DB veritabanımıza Mongoose bağlantılarını kullanarak kullanıcı arabiriminden kahraman ekleyebilir, güncelleştirebilir ve silebiliriz.
Kaynakları temizle
Kaynaklara artık ihtiyacınız kalmadığında kaynak grubunu, Azure Cosmos DB hesabını ve tüm ilgili kaynakları silebilirsiniz. Kaynak grubunu silmek için aşağıdaki adımları kullanın:
- Azure Cosmos DB hesabını oluşturduğunuz kaynak grubuna gidin.
- Kaynak grubunu sil seçeneğini seçin.
- Silinecek kaynak grubunun adını onaylayın ve Sil'i seçin.
Sonraki Adımlar
Uygulamaya Post, Put ve Delete işlevlerini eklemek için öğreticinin 6. Bölümüne geçin:
Azure Cosmos DB'ye geçiş için kapasite planlaması yapmaya mı çalışıyorsunuz? Kapasite planlaması için mevcut veritabanı kümeniz hakkındaki bilgileri kullanabilirsiniz.
- Tek bildiğiniz mevcut veritabanı kümenizdeki sanal çekirdek ve sunucu sayısıysa, sanal çekirdek veya vCPU kullanarak istek birimlerini tahmin etme hakkında bilgi edinin
- Geçerli veritabanı iş yükünüz için tipik istek oranlarını biliyorsanız, Azure Cosmos DB kapasite planlayıcısını kullanarak istek birimlerini tahmin etme hakkında bilgi edinin.