Hapi.js Projesi Oluşturma ve Çalıştırma
Hapi.js Nedir?
Hapi.js, uygulamalar ve hizmetler oluşturmak için kullanılan, güçlü ve esnek bir Node.js çerçevesidir. Walmart Labs tarafından geliştirilmiş ve eklenti sistemi ve zengin özellikleri ile ünlüdür. Hapi.js, HTTP isteklerini ve yanıtlarını işlemek için basit bir yol sunar, böylece geliştiriciler yüksek performanslı web uygulamaları ve API'ler oluşturabilirler.
Hapi.js'in Ana Özellikleri ve Avantajları
- Eklenti Sistemi: Hapi.js güçlü bir eklenti sistemine sahiptir, bu da kodun kolayca genişletilip yeniden kullanılabilir olduğu anlamına gelir.
- Yönlendirme Sistemi: Esnek ve güçlü yönlendirme tanımlama ve işleme işlevleri sunar.
- Giriş Doğrulama: Güçlü giriş doğrulama işlevi ile gelen verilerin bütünlüğünü ve güvenliğini sağlar.
- Zengin Ekosistem: Çeşitli yaygın işlevsel ihtiyaçları karşılayan geniş bir eklenti ve topluluk desteği mevcuttur.
- Güvenlik: Çapraz site istek sahteciliği (CSRF) ve çapraz site betik saldırıları (XSS) gibi çeşitli güvenlik özelliklerini içerir.
Hapi.js kullanarak gelişticiler hızlı ve güvenli web uygulamaları ve API'ler oluşturabilirler.
ServBay Kullanarak Hapi.js Projesi Oluşturma ve Çalıştırma
Bu makalede, ServBay tarafından sağlanan Node.js ortamını kullanarak bir Hapi.js projesi oluşturup çalıştıracağız. ServBay'ın 'host' özelliğini kullanarak bir web sunucusu kuracak ve ters proxy ile projeye erişim sağlayacağız.
Hapi.js Projesi Oluşturma
Projeyi Başlatma
İlk olarak, ServBay tarafından sağlanan Node.js ortamını kurduğunuzdan emin olun. Daha sonra, ServBay önerilen web sitesi ana dizininde
/Applications/ServBay/www
altında yeni bir Hapi.js projesi oluşturun:bashcd /Applications/ServBay/www mkdir servbay-hapi-app cd servbay-hapi-app npm init -y npm install @hapi/hapi
1
2
3
4
5Uygulama Dosyasını Oluşturma
Proje kök dizininde bir
server.js
dosyası oluşturun ve aşağıdaki kodları ekleyin:javascriptconst Hapi = require('@hapi/hapi'); const init = async () => { const server = Hapi.server({ port: process.env.PORT || 3000, host: 'localhost' }); server.route({ method: 'GET', path: '/', handler: (request, h) => { return 'Hello ServBay!'; } }); await server.start(); console.log('Server running on %s', server.info.uri); }; process.on('unhandledRejection', (err) => { console.log(err); process.exit(1); }); init();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Geliştirici Moduna Geçme
Geliştirme Sunucusunu Çalıştırma
Geliştirme sunucusunu başlatın ve bir port belirleyin (örneğin: 8585):
bashPORT=8585 node server.js
1Bu, yerel makinede bir geliştirme sunucusu başlatacak ve 8585 portunu açacaktır.
ServBay Host Ters Proxy Konfigürasyonu
ServBay'ın 'host' özelliğini kullanarak geliştirme sunucusuna ters proxy ile erişim sağlayın. ServBay 'host' ayarlarında yeni bir ters proxy ekleyin:
- Adı:
My first Hapi.js dev site
- Domain:
servbay-hapi-test.dev
- Ana Makine Türü:
Ters Proxy
- IP:
127.0.0.1
- Port:
8585
Detaylı kurulum adımları için Nodejs geliştiricisinin eklenmesi hakkında bilgi edinin.
- Adı:
Geliştirme Moduna Erişin
Tarayıcınızı açın ve
https://servbay-hapi-test.dev
adresine gidin, projenizi canlı olarak görüntüleyin. ServBay, özelleştirilmiş domain adları ve ücretsiz SSL sertifikaları sağladığından daha yüksek güvenlikten yararlanacaksınız.
Üretim Sürümünü Yayınlama
Üretim Ortamını Hazırlama
Projenizin üretim ortamında düzgün çalıştığından emin olun. Genellikle, Hapi.js projeleri için özel bir yapı adımı gerekmese de, bazı çevre değişkenlerini ayarlamanız veya diğer konfigürasyonları yapmanız gerekebilir.
Üretim Sunucusunu Çalıştırma
Üretim sunucusunu başlatın ve bir port belirleyin (örneğin: 8586):
bashPORT=8586 NODE_ENV=production node server.js
1ServBay Host Ters Proxy Konfigürasyonu
ServBay'ın 'host' özelliğini kullanarak üretim sunucusuna ters proxy ile erişim sağlayın. ServBay 'host' ayarlarında yeni bir ters proxy ekleyin:
- Adı:
My first Hapi.js production site
- Domain:
servbay-hapi-test.prod
- Ana Makine Türü:
Ters Proxy
- IP:
127.0.0.1
- Port:
8586
- Adı:
Üretim Moduna Erişin
Tarayıcınızı açın ve
https://servbay-hapi-test.prod
adresine gidin, üretim sürümünüzü görüntüleyin. ServBay'in özelleştirilmiş domain adları ve ücretsiz SSL sertifikaları sayesinde, web 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 sağlar. Aşağıda bu veritabanlarına nasıl bağlanacağınızı gösteren bazı örnekler verilmiştir.
MongoDB Bağlantısı
@hapi/nes
vemongoose
'u yükleyin:bashnpm install mongoose
1Daha sonra projeye dahil edin ve bağlayın:
javascriptconst mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/servbay-hapi-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('MongoDB connected')) .catch(err => console.log(err));
1
2
3
4
5Redis Bağlantısı
redis
'i yükleyin:bashnpm install redis
1Daha sonra projeye dahil edin ve bağlayın:
javascriptconst redis = require('redis'); const client = redis.createClient(); client.on('error', function (err) { console.log('Error ' + err); }); client.on('connect', function () { console.log('Redis client connected'); });
1
2
3
4
5
6
7
8
9
10MariaDB Bağlantısı
mariadb
'i yükleyin:bashnpm install mariadb
1Daha sonra projeye dahil edin ve bağlayın:
javascriptconst mariadb = require('mariadb'); const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_hapi_app' }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB"); conn.release(); }) .catch(err => { console.log("Not connected due to error: " + err); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16PostgreSQL Bağlantısı
pg
'yi yükleyin:bashnpm install pg
1Daha sonra projeye dahil edin ve bağlayın:
javascriptconst { Pool } = require('pg'); const pool = new Pool({ user: 'user', host: 'localhost', database: 'servbay_hapi_app', password: 'password', port: 5432, }); pool.connect((err, client, done) => { if (err) throw err; console.log('Connected to PostgreSQL'); done(); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Yukarıdaki adımlarla, Hapi.js projenizi oluşturdunuz ve çalıştırdınız, ve ServBay'in sunduğu özellikleri kullanarak projenizi yönettiniz ve erişime açtınız, aynı zamanda birden fazla veritabanına bağlantı sağladınız.