NestJS Projesi Oluşturma ve Çalıştırma
NestJS Nedir?
NestJS, Node.js sunucu tarafı uygulamaları için verimli ve ölçeklenebilir bir çerçevedir. TypeScript ile yazılmıştır ve Angular'dan ilham almıştır; modüler mimari ve bağımlılık enjeksiyonu (DI) modeli kullanır. NestJS, geliştiricilere karmaşık uygulamalar oluşturmayı kolaylaştıran güçlü araçlar ve özellikler sunar.
NestJS'nin Temel Özellikleri ve Avantajları
- Modüler Mimari: Kodları modüllerle organize ederek uygulamayı daha yapılandırılmış ve sürdürülebilir hale getirir.
- Bağımlılık Enjeksiyonu: Güçlü bir bağımlılık enjeksiyonu sistemi sunar, bu da kodun test edilebilirliğini ve sürdürülebilirliğini artırır.
- TypeScript Kullanımı: TypeScript'in statik tip kontrolü ve modern JavaScript özelliklerinden yararlanarak gelişim verimliliğini ve kod kalitesini artırır.
- Zengin Dekoratörler: Denetleyiciler, servisler, modüller vb. tanımlamak için dekoratörler kullanarak kodu daha basit ve anlaşılır hale getirir.
- Güçlü Ekosistem: NestJS çok sayıda üçüncü parti modül ve eklenti desteğine sahiptir, bu da geliştirmeyi daha kolay hale getirir.
NestJS kullanarak, geliştiriciler yüksek performanslı Web uygulamaları ve API'ler hızlıca oluşturabilirler.
ServBay Kullanarak NestJS Projesi Oluşturma ve Çalıştırma
Bu makalede, ServBay'in sağladığı Node.js ortamını kullanarak NestJS projesi oluşturacak ve çalıştıracağız. ServBay'in 'Hosting' özelliğini kullanarak Web sunucusunu ayarlayacak ve ters proxy ile projeye erişimi sağlayacağız.
NestJS Projesi Oluşturma
Projeyi Başlatma
İlk olarak, ServBay'in sağladığı Node.js ortamını kurduğunuzdan emin olun. Ardından, aşağıdaki komutla global olarak NestJS CLI'yı kurun:
bashnpm install -g @nestjs/cli
1ServBay'in önerdiği web sitesi kök dizini
/Applications/ServBay/www
içinde yeni bir NestJS projesi oluşturun:bashcd /Applications/ServBay/www nest new servbay-nest-app
1
2Proje adını (servbay-nest-app olarak adlandırılması önerilir) girin ve diğer seçenekleri ihtiyacınıza göre seçin.
Bağımlılıkları Kurma
Proje dizinine girin ve bağımlılıkları kurun:
bashcd servbay-nest-app npm install
1
2
NestJS Projesi Çıktı İçeriğini Değiştirme
src/app.controller.ts
Dosyasını Değiştirmesrc/app.controller.ts
dosyasını açın ve içeriği "Hello ServBay!" olarak değiştirecek şekilde düzenleyin:typescriptimport { Controller, Get } from '@nestjs/common'; @Controller() export class AppController { @Get() getHello(): string { return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
Geliştirme Moduna Girme
Geliştirme Sunucusunu Çalıştırma
Geliştirme sunucusunu başlatın ve portu (örneğin: 8585) belirleyin:
bashPORT=8585 npm run start
1Bu, yerel bir geliştirme sunucusu başlatacak ve port 8585 üzerinden erişim sağlayacaktır.
ServBay Ana Makine Ters Proxy Yapılandırma
ServBay'in 'Ana Makine' özelliğini kullanarak ters proxy ile geliştirme sunucusuna erişin. ServBay'in 'Ana Makine' ayarlarında yeni bir ters proxy ekleyin:
- Adı:
My first NestJS dev site
- Domain:
servbay-nest-test.dev
- Ana Makine Türü:
Ters Proxy
- IP:
127.0.0.1
- Port:
8585
Ayrıntılı ayarlar için Nodejs geliştirme web tarsayı ekleme adımlarına bakın.
- Adı:
Geliştirme Moduna Erişme
Tarayıcınızı açın ve
https://servbay-nest-test.dev
adresine gidin, projeyi gerçek zamanlı olarak gözlemleyin. ServBay'in özel domainler ve ücretsiz SSL sertifikaları desteklemesi sayesinde daha yüksek güvenlikten faydalanabilirsiniz.
Üretim Versiyonunu Dağıtma
Üretim Ortamını Hazırlama
Projenizin üretim ortamında düzgün çalıştığından emin olun. Genellikle, NestJS projeleri için özel bir yapı adımı gerekmez, ancak bazı çevresel değişkenlerin ayarlanması veya başka konfigürasyonların yapılması gerekebilir.
Üretim Sunucusunu Çalıştırma
Üretim sunucusunu başlatın ve portu (örneğin: 8586) belirleyin:
bashPORT=8586 NODE_ENV=production npm run start:prod
1ServBay Ana Makine Ters Proxy Yapılandırma
ServBay'in 'Ana Makine' özelliğini kullanarak ters proxy ile üretim sunucusuna erişin. ServBay'in 'Ana Makine' ayarlarında yeni bir ters proxy ekleyin:
- Adı:
My first NestJS production site
- Domain:
servbay-nest-test.prod
- Ana Makine Türü:
Ters Proxy
- IP:
127.0.0.1
- Port:
8586
- Adı:
Üretim Moduna Erişme
Tarayıcınızı açın ve
https://servbay-nest-test.prod
adresine gidin, üretim versiyonunu gözlemleyin. ServBay'in özel domainler ve ücretsiz SSL sertifikaları sayesinde, siteniz daha yüksek güvenlik ve güvenilirliğe sahip olacaktır.
Veritabanı Bağlantısı
ServBay, Redis, MariaDB, PostgreSQL ve MongoDB veritabanı desteği sunar. İşte bu veritabanlarına nasıl bağlanacağınız örnekleri.
MongoDB Bağlama
@nestjs/mongoose
vemongoose
kurun:bashnpm install @nestjs/mongoose mongoose
1Ardından projeye dahil edin ve bağlayın:
typescriptimport { Module } from '@nestjs/common'; import { MongooseModule } from '@nestjs/mongoose'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ MongooseModule.forRoot('mongodb://localhost/servbay-nest-app'), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
1
2
3
4
5
6
7
8
9
10
11
12
13Redis Bağlama
@nestjs/redis
veredis
kurun:bashnpm install @nestjs/redis redis
1Ardından projeye dahil edin ve bağlayın:
typescriptimport { Module } from '@nestjs/common'; import { RedisModule } from '@nestjs/redis'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ RedisModule.forRoot({ url: 'redis://localhost:6379', }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15MariaDB Bağlama
@nestjs/typeorm
vemysql2
kurun:bashnpm install @nestjs/typeorm mysql2
1Ardından projeye dahil edin ve bağlayın:
typescriptimport { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ TypeOrmModule.forRoot({ type: 'mariadb', host: 'localhost', port: 3306, username: 'root', password: 'password', database: 'servbay_nest_app', entities: [], synchronize: true, }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22PostgreSQL Bağlama
@nestjs/typeorm
vepg
kurun:bashnpm install @nestjs/typeorm pg
1Ardından projeye dahil edin ve bağlayın:
typescriptimport { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ TypeOrmModule.forRoot({ type: 'postgres', host: 'localhost', port: 5432, username: 'user', password: 'password', database: 'servbay_nest_app', entities: [], synchronize: true, }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Yukarıdaki adımlarla, NestJS projesini başarıyla oluşturup çalıştırdınız ve ServBay'in sunduğu özellikleri kullanarak projenizi yönettiniz ve erişimini sağladınız, aynı zamanda çeşitli veritabanlarına bağlandınız.