Site arka ucu (dinamik işleyiciler)
Yüklenmiş bir web sitesi, statik dosyalarının yanı sıra gerçek bir arka uca da sahip olabilir — tek tek adreslere bağlanan küçük JavaScript işleyiciler. Her işleyici bir yola ve bir HTTP yöntemine bağlıdır; bir ziyaretçi o adresi açtığında Qubix işleyiciyi çalıştırır ve oluşturduğu şeyi döndürür — bir sayfa, bir JSON yanıtı, bir yönlendirme, bir durum kodu.
Bir sayfanın yalnızca statik içerik göstermek yerine sunucuda bir şey yapması gerektiğinde bunu kullanın: bir POST isteğiyle bir lead kabul etmek, belirli bir yola oluşturulmuş HTML ile yanıt vermek veya isteğe bağlı olarak bir yönlendirme göndermek. Sıradan statik whitepage'ler ve landing'ler için buna ihtiyacınız yoktur — Backend sekmesini boş bırakın, web sitesi düz dosyalar olarak sunulur.
Arka uç sekmesini açın
Bir web sitesi kartının üstünde üç sekme bulunur: Dosyalar, Backend ve Önizleme. Etkin sekme adres çubuğunda kaydedilir, böylece doğrudan belirli bir sekmeye bir bağlantı kopyalayabilirsiniz.
- «Web siteleri» bölümünü açın ve ihtiyacınız olan web sitesine tıklayın.
- Backend sekmesine geçin.
Web sitesinin henüz işleyicisi yoksa, liste «+ yeni» öğesinin bir şablondan bir tane oluşturduğuna dair ipucunu gösterir.
Backend sekmesine yalnızca sayfanın sunucuda bir şey işlemesi gerektiğinde ihtiyaç vardır. Tamamen statik bir sayfa herhangi bir işleyici olmadan çalışır.
Bir işleyici oluşturun
- Backend sekmesinde, işleyici listesinin üstünde, sol üstteki «+ yeni» öğesine tıklayın. Hazır bir şablondan yeni bir işleyici oluşturulur ve düzenleyicide açılır.
🎬 GIF: «+ yeni» öğesine tıklama ve şablon işleyicinin düzenleyicide açılması
- Düzenleyicinin üstündeki başlık formunda yol öğesini ayarlayın — işleyicinin yanıt verdiği adres. Alan, yer tutuculu bir şablon kabul eder (örneğin,
/users/:id)::name— bir yol segmentini yakalar (örneğin,/users/:idiçindeki:id,/users/42ile eşleşir);*— yolun geri kalanını birkaç segment boyunca yakalar;**— yolun geri kalanıyla onu yakalamadan eşleşir.
- method öğesini seçin —
GET,POST,PUT,DELETE,PATCH,HEAD,OPTIONSveya ANY (herhangi bir yönteme yanıt verir). - İşleyicinin canlı sitede çalışması için enabled onay kutusunu açık tutun. Bir işleyiciyi kaydedilmiş ancak etkin olmayan tutmak için onu kapatın.
- Merkezi düzenleyicide işleyici kodunu yazın (aşağıdaki İşleyici kodu bölümüne bakın).
- Kaydet (veya Cmd+S, Windows'ta — Ctrl+S) öğesine tıklayın.
Soldaki listede her işleyici, yöntemi ve yolu olarak gösterilir (yöntemi ayarlanmamış bir işleyici ANY olarak gösterilir); devre dışı bırakılmış olanı buna göre işaretlenir.
Birden fazla işleyici aynı adrese yanıt verebiliyorsa, Qubix en spesifik olanı seçer — tam yola sahip bir işleyici, yer tutuculu veya joker karakterli olana üstün gelir. Böylece kesin bir işleyiciyi, çakışmadan geniş bir genel yakalayıcının yanında tutabilirsiniz.
İşleyici kodu
Bir işleyici, bir istek nesnesi alan — buna r deyin — bir JavaScript fonksiyonudur; isteği (yöntem, yol, sorgu ve form argümanları, başlıklar, yakalanan yol segmentleri) ve yanıtı (başlıkları ayarla, gövdeli bir durum döndür veya bir yönlendirme) açığa çıkarır. Düzenleyicinin başladığı şablon, tipik biçimi zaten gösterir.
Düzenleyici, sözdizimi vurgulama ve otomatik tamamlamaya sahip tam bir kod düzenleyicidir: r. yazmaya başlayın, Qubix mevcut istek ve yanıt alanlarını açıklamalarıyla birlikte önerir, böylece onları aklınızda tutmak zorunda kalmazsınız.
Bir işleyicinin içinde, paylaşılan Qubix araç setine de sahipsiniz: salt okunur veritabanı sorguları, harici hizmetlere istekler ve çağrılar arasında kalıcı olan durum. Bunlar Komut dosyaları bölümündekiyle aynı şekilde çalışır — ayrıntılar için o makaleye bakın. Giden isteklere yalnızca yöneticinin izin listesine eklediği adreslere izin verilir. Bir sorgunun hangi tablolara ve sütunlara erişebileceği SQL sorguları için tablolar bölümünde açıklanmıştır.
r nesnesi referansı
İşleyicinin istekten okuduğu ve yanıtı oluşturmak için kullandığı her şey.
İsteği okuma:
| Alan | Nedir |
|---|---|
r.method | İsteğin HTTP yöntemi (GET, POST, …) |
r.uri | İşleyicinin yanıt verdiği adres (örneğin, /promo/123) |
r.rawUri | Hizmet öneki dahil tam harici adres |
r.args | Adres ve form parametreleri (anahtar → değer) |
r.params | Yol şablonundan yakalanan değerler (örneğin, /users/:id içindeki id) |
r.requestBuffer | İstek gövdesi, dize olarak |
r.headersIn | İstek başlıkları |
r.remoteAddress | Ziyaretçinin IP'si |
r.variables | Tıklama bağlamı: geo, click_id, sub1…sub5, lang |
r.session | Ziyaretçi oturumu: get(key), set(key, value), delete(key) |
Yanıtı oluşturma:
| Alan / Yöntem | İşlev |
|---|---|
r.headersOut | Yanıt başlıkları (ayarlanabilir ve silinebilir) |
r.return(status, body?, location?) | Yanıtı gönderir; location yönlendirme adresidir |
r.log(...), r.warn(...), r.error(...) | Çalışma günlüğüne yazar (test çalıştırıcısında görülebilir) |
Şifreleme yardımcıları
Bir işleyicinin ayrıca şifreleme yardımcıları da bulunur:
| Yöntem | Ne yapar |
|---|---|
crypto.uuid() | Rastgele bir tanımlayıcı |
crypto.hmac(algo, key, data) | data verisinin key ile HMAC'i, hex kodlanmış; algo değeri 'sha256', 'sha1' veya 'md5' olabilir |
Örneğin fetch aracılığıyla bir dış hizmete göndermeden önce verileri imzalamak için kullanışlıdır.
Bir işleyiciyi test edin
Her işleyicinin düzenleyicinin sağında yerleşik bir test çalıştırıcısı bulunur — canlı siteye dokunmadan bir test isteği gönderin ve işleyicinin tam olarak ne yanıt verdiğini görün.
- method öğesini seçin ve test edilecek yol öğesini girin (örneğin,
/users/42). - (İsteğe bağlı) İstek girdilerini doldurun:
- Sorgu (JSON) — JSON nesnesi olarak sorgu parametreleri;
- Gövde (raw) — ham istek gövdesi;
- geo ve click_id — işleyiciye istek değişkenleri olarak geçirilen değerler.
- Çalıştır öğesine tıklayın.
Sonuç aşağıda görünür:
- yanıt status kodu (yeşil / mavi / kırmızı renkli) ve çalışmanın ne kadar sürdüğü;
- parametreler — yol şablonundan yakalanan değerler;
- Yönlendirme — işleyici bir tane ayarladıysa yönlendirme hedefi;
- yanıt başlıklar ve gövde;
- konsol — işleyicinin çalışma sırasında günlüğe kaydettiği her şey.
İstek, işleyicinin saklanan durumuna ulaşır veya onu değiştirirse, panel ayrıca oturum öğesini dokunulmuş olarak işaretler.
Sorgu (JSON) geçerli JSON olmalıdır. Değilse, test çalışmaz ve alan vurgulanır — JSON'u düzeltin ve Çalıştır öğesine yeniden tıklayın.
Site dosyalarını düzenleyin
Kartın diğer yarısı Dosyalar sekmesidir — web sitesinin statik dosyaları (HTML, CSS, JS, görseller, yazı tipleri) solda bir ağaçta ve sağda bir kod düzenleyicide. Metin dosyaları sözdizimi vurgulamayla açılır; Kaydet veya Cmd+S (Windows'ta — Ctrl+S) ile kaydedin. Görseller, video, ses ve diğer dosyalar bir önizleme veya bir indirme alır. Dosyaları klasörler arasında sürükleyebilir ve bilgisayarınızdan yenilerini bırakabilirsiniz.
Dosyalar sekmesinin tam bir dökümü Web siteleri ve Bir web sitesi yükleme bölümlerindedir.
Alan ve davranış notları
yol — işleyicinin yanıt verdiği adres şablonu. :name (bir segment), * (geri kalanı, yakalanır) ve ** (geri kalanı, yakalanmaz) destekler. Yakalanan segmentler işleyici için kullanılabilir ve test çalıştırıcısında params olarak gösterilir.
method — hangi HTTP yönteminin işleyiciyi tetiklediği. ANY her yönteme yanıt verir.
enabled — işleyicinin canlı sitede çalışıp çalışmadığı. Devre dışı bırakılmış bir işleyici kaydedilmiş kalır ancak atlanır.
«+ yeni» — yerleşik şablondan, düzenlemeye hazır bir işleyici oluşturur.