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.
ŞUNLAR IÇIN GEÇERLIDIR: MongoDB
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 makalede öğreticinin 5. Bölümü açıklanır ve Bölüm 4'te derlemeler açıklanı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ı dizesi edinin.
- 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.
Önkoşullar
Bu öğreticiye 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 --version
komutunu çalıştırın. Azure CLI'yı yüklemeniz veya yükseltmeniz gerekiyorsa bkz . Azure CLI 2.0'ı yükleme.Bu öğretici, uygulamayı adım adım derleme adım adım size yol 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 --save
Önemli
MongoDB için Azure Cosmos DB, Mongoose'un en fazla sürümüyle
5.13.15
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, ,
key
vecosmosPort
parametreleri içindbName
değ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 alma
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
port
10255 olarak değiştirin.const port = 10255;
environment.js dosyasında değerini, öğreticinin 4. Bölümünde oluşturduğunuz Azure Cosmos DB hesabının adıyla değiştirin
accountName
.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ğer olarak
key
environment.js dosyası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 deyişi olan yeni bir şema oluşturur.
- Şemayı kullanarak bir model oluşturur.
- Modeli dışarı 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.
- Tüm kahramanları
hero.find
döndüren birdocquery
sorgu tanımlamak için yöntemini kullanan bir değişken oluşturur. - yanıt durumunun
docquery.exec
200 olduğu tüm kahramanların listesini alma sözüyle işleviyle bir sorgu çalıştırır. - Durum 500 ise hata iletisini geri gönderir.
- Modülleri kullandığımız için kahramanları alır.
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 };
Yolları yapılandırma
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
res.send
hero verilerini gönderen işlevi açıklama satırı yapın. Bunun yerine işlevi çağırmakheroService.getHeroes
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
require
hizmeti:const heroService = require('./hero.service');
hero.service.js dosyasında, ve
res
parametrelerini almakreq
için işlevini aşağıdaki gibi güncelleştiringetHeroes
:function getHeroes(req, res) {
Önceki kodu gözden geçirmek ve gözden geçirmek için bir dakika bekleyelim. İ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 konuşur ve getHeroes gibi işlevlerinizi alması ve isteği ve yanıtı iletmesini 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:3000
gittiğ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ı temizleme
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'i 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ı kullanarak istek birimlerini tahmin etme hakkında bilgi edinin