Geliştirme | Sadece bir adım! Küçük bir program arka ucunu nasıl kolayca dağıtacağınızı öğretin

Prosedür notunu bilin

"WeChat web geliştirici araçları" nın yeni sürümüne "Tencent Cloud" entegrasyon işlevi eklendi.

Bununla, "WeChat web geliştirici aracında" arka uç kod yazma ve Tencent Bulut dağıtımı gibi bir dizi işlemi doğrudan entegre edebilirsiniz.

Peki bu Tencent Cloud entegrasyon aracı nasıl kullanılmalı? Programı tanıyın (WeChat ID zxcx0101), size arka uç kodu geliştirmek için geliştirici araçlarını kullanmayı adım adım öğretmek için bugün bu makaleyi paylaştı.

"Knowing Program" WeChat resmi hesabını takip edin, "Geliştirme" ye yanıt verin ve mini program geliştirme hakkında tam bir eğitim seti edinin.

Ön uç programcılar kendi küçük programlarını geliştirirler.Küçük program geliştirmeyi öğrenmekle karşılaştırıldığında, daha büyük zorluk, küçük programın arka ucunu oluşturmada yatar.

Yeni başlayanlar açısından bakıldığında, bu makale Tencent Cloud tarafından başlatılan küçük bir program çözümü olan wafer2'yi kısaca tanıtıyor, böylece arka plan geliştirme deneyimi olmayan programcılar kendi küçük program arka uçlarını oluşturabilirler.

Giriş

1. Gofret nedir?

Arka planın oluşturulması, bir sunucu ve veritabanı satın almaktan işletim ortamını sunucuya kurmaya kadar bir dizi süreci içerir.

Dürüst olmak gerekirse, sunucuya ne yükleyeceğimi bile bilmiyorum. Umarım birisi tüm bunları yapmama yardım edebilir Küçük programların bazı ortak arayüzlerini tamamlamama yardım edebilseydi daha iyi olurdu.

Evet, Bu gofretin yaptığı şey .

Güvenli alan adının yapılandırıldığı uygulamanın arka planında Tencent Cloud'a bir bağlantı vardır. Ona tıklayın ve sunucu yapılandırmasını satın almak için doğrudan Tencent Cloud'a gidebilirsiniz.

Giriş yaptıktan sonra, satın alma talimatlarını izleyin, yapılandırılmış bir arka uç sunucunuz olabilir ve arka uç geliştirmeye başlayabilirsiniz.

2. Gofretin yükseltilmiş versiyonu: gofret 2

Kendi başıma bir arka uç sunucu oluşturmaya kıyasla, wafer çok daha uygun, ancak yine de onu kullanmakta zorlanıyorum.

Tencent Cloud'un wafer 2'yi başlattığını öğrenene kadar ne Linux'a aşina değildim ne de kodu nasıl test edeceğimi bilmiyordum.

Uygulama geliştirme aracının yeni sürümünü kullanırsanız, Aracın sağ üst köşesinde "Tencent Cloud" butonu bulunmaktadır, Tencent Cloud konfigürasyon menüsüne girmek için üzerine tıklayınız. .

"Farkındalık Programı" WeChat resmi hesabını takip edin, "Araçlar" a yanıt verin ve geliştirici araçlarının yeni sürümünün indirme adresini alın.

Bununla, Arka uç kodunu doğrudan küçük program geliştirme aracına yazabilir ve yükleyebiliriz . Wafer 2 arka uç ortamının geliştirme ortamını ve üretim ortamını ayırt ettiği unutulmamalıdır.

Sonra, wafer2'yi nasıl kullanacağımızı görelim.

Gofret 2 ortamını kurun

1. Ortam kurulumu ve dağıtımı

Wafer 2'nin geliştirme ortamını kurmak çok basit.Resmi belgeleri takip etmelisiniz, sorun çıkmasın, bu yüzden burada ayrıntılara girmeyeceğim.

WeChat resmi "Prosedürü Bilme" hesabını takip edin, "gofret" yanıtını verin ve gofret 2'nin resmi belge adresini alın.

Bununla birlikte, resmi belgeler tamamen geliştirme ortamıyla ilgilidir. Arka uç kodunu üretim ortamına dağıtmak için bazı yapılandırmaların değiştirilmesi gerekir.

2. Alan Adı

Geliştirme ortamının alan adı Tencent Cloud tarafından atanan xxx.qcloud.la'dır ve üretim ortamının Tencent Cloud'da kendi alan adınızı kullanması gerekir.

Tencent Bulut Yönetim Merkezi aracılığıyla kaydedilen alan adı, otomatik olarak bir HTTPS sertifikası dağıtacaktır. Ancak dosyalamak istiyorsanız, sunucu IP'sini kaydetmeniz gerekir ve wafer 2'nin sunucu IP'si bize sağlanmaz. .

Yani şu anda dosyalanmış bir sunucu kullanmak istiyorsanız, sadece dosyalama için başka bir sunucu kiralayabilirsiniz ...

Alan adını bağladıktan sonra, geliştirme aracı "Ayrıntılar" - "Tencent Bulut Durumu" nda üretim ortamı alan adını onaylayabilirsiniz.

Üretim ortamına geçtikten sonra, uygulama kodundaki etki alanı adını ve arayüzü unutmayın, bunların da değiştirilmesi gerekir.

3. Veritabanı

Sonraki, Tencent Bulut Yönetim Merkezi'ndeki üretim ortamında MySQL giriş şifresini değiştirmemiz gerekiyor .

Ardından, phpMyAdmin'i kullanarak, MySQL sunucusu IP adresini ana sayfada görebilir ve not edebilirsiniz.

Geliştirme aracına geri dönün, sunucu / config.js'yi bulun, IP adresini ve MySQL yapılandırmasının giriş şifresini değiştirin:

mysql: {host: 'IP üretim ortamına değiştir', bağlantı noktası: 3306, kullanıcı: 'root', db: 'cAuth', pass: 'Üretim ortamı şifresine değiştir', char: 'utf8mb4'},

Resmi kodu geliştirme aracına yükleyin, ardından yönetim merkezinin üretim ortamına gidin ve "Kod Dağıtımı" na tıklayın. Bu, üretim ortamının yapılandırmasını ve dağıtımını tamamlar.

farkında olmak zorunda, Geliştirme ortamının MySQL sürüm numarası 5.7 ve üretim ortamı 5.6'dır. . Bu nedenle, geliştirme sırasında yalnızca MySQL 5.7'de bulunan JSON ve diğer işlevleri kullanmayın.

Kendiniz deneyin, wafer 2'nin kullanımı kolay mı?

Bu kadar çok dağıtım sorunu söyledikten sonra, aslında eskisinden çok daha basit görünüyor. Ama onu gerçekten kullanmak nasıl bir duygu?

Şimdi deneyimlerimden ve wafer 2'yi kullanırken karşılaştığım problemlerden bahsedeyim.

1. wafer 2 ile paketlenmiş arayüz: Mini program girişi

Tüm küçük programların kullanacağı arayüzden bahsedelim: WeChat giriş arayüzü.

Wafer2 istemcisi ve sunucu SDK'ları entegre oturum açma mantığına sahiptir.SDK istemcide belirtildikten sonra, oturum açma yöntemi çağrıldığı sürece, WeChat oturum açma işlevi uygulamada uygulanabilir.

qcloud.login ({başarı: res = > {console.log ('Giriş başarılı', res)}, başarısız: err = > {console.log ('Giriş başarısız oldu', hata)}})

Başarılı bir oturum açtıktan sonra, kullanıcı verileri cAuth veritabanının cSessionInfo tablosuna kaydedilecek ve kullanıcı verileri döndürülecektir.

Güzel görünüyor ama içinde bazı sorunlar var.

Örneğin, Kullanıcı oturum açtıktan sonra, kullanıcı bilgileri yerel olarak önbelleğe alınacak, önbellek varsa, kullanıcı bilgileri doğrudan iade edilecektir. . SDK'da, önbelleğin okunması ve yazılması sorunludur ve bir önbellek olduğunda tanımsız döndürülür.

Bu çok düşük seviyeli bir hatadır, sorun resmi geri bildirimlere verilmiştir. Bu yazıyı yazarken verinin alındığı yer değiştirilmiş ancak saklandığı yer değiştirilmemiştir ...

Bu nedenle, wafer 2'yi normal şekilde kullanmaya devam etmek istiyorsanız, wafer2-client-sdk / lib / login.js'ye gitmeniz ve kullanıcı veri yapılandırmasını kaydeden satırı bulmanız gerekir:

Session.set (res.skey);

Bulduktan sonra, şöyle görünecek şekilde değiştirin:

Session.set (res);

Ayrıca SDK içerisindeki wx.login ve wx.getUserInfo'nun birlikte kullanılması gerektiğinden, yani kullanıcı bilgilerinin oturum açmadan önce alınması gerektiğinden şikayet etmek istiyorum.

Ve küçük bir programın kullanıcı bilgilerini alırken bir pencere açacağını biliyoruz ve kullanıcı bunu reddedebilir. Kullanıcı oturum açmayı reddettikten sonra, wx.getUserInfo çağrısı artık açılmayacaktır.

Denilebilir wafer 2, kullanıcının yetkiyi reddetmesini hiç dikkate almıyor . Bu, WeChat'in teşvik etmediği bir uygulama olur ve bazen mini programın incelemede başarısız olmasına neden olabilir.

Ben de bu konuyu yetkiliye bildirdim.

2. Kendiniz bir arayüz yazmaya çalışın

Öğrenmek, ilgiyi korumak için amaçlı olmalı, bu yüzden wafer 2'yi kullanmaya çalıştım ve kendi arayüzümü yazdım.

farkında olmak zorunda: wafer 2, Node.js platformunu temel alır ve Koa 2 çerçevesini kullanır Yani eğitimimiz bu ortama göre tamamlanacaktır.

Sunucu / denetleyiciler altında yeni bir dosya hello.js oluşturuyoruz ve ardından dosyaya aşağıdaki kodu giriyoruz:

module.exports = eşzamansız ctx = > {ctx.state.data = "Merhaba Dünya!"}

Kod çok basittir, yani "Merhaba Dünya!" Ve "Merhaba Dünya!" Döndüren bir yöntem istek sonucunun verilerine yerleştirilecektir.

Ardından sunucu / yollar / index.js'yi açıp bir kod ekliyoruz:

// Test arabirimi router.get ('/ merhaba', controllers.hello)

Evet, çok fazla kod var.

Kaydettikten sonra "Tencent Cloud" - "Test Kodunu Yükle" ye tıklayın, İlk yükleme ise "Dağıtımdan sonra bağımlılıkları otomatik olarak yükle" seçeneğini işaretlemeyi unutmayın. .

Yüklemenin başarılı olmasını beklerken arayüzümüzü test edebilirsiniz. Aşağıdaki sonuçların döndürülüp döndürülmediğini görmek için bir tarayıcıyla xxx.qcloud.la/weapp/hello adresini ziyaret edin:

{code: 0, data: "Merhaba Dünya!"}

Tebrikler! Kendi geliştirdiğiniz ilk arayüz ayarlandı! Ardından, ağ isteklerini ve parametrelerini işlemek için ön ve arka uçların birlikte nasıl çalıştığına bir göz atalım.

3. Wafer 2 geliştirmenin derinlemesine kullanımı

Uygulamanın ön ve arka uçları arasındaki işbirliğine dayalı bilgi işlemenin ihtiyaçlarını karşılamak için, SDK ayrıca ağ istek yöntemini de kapsüller. , Ağ istekleri için qcloud.request kullanmaktır.

Bunu kullanarak, kullanıcının oturum açma durumunu onaylayabilir ve kullanıcının oturum bilgilerini sunucuya getirebiliriz. Bu gereksinimlere sahip değilseniz, wx.request'i geri kullanabilirsiniz.

Arka uca gelince, API arayüzünü her zamanki gibi yazın ve küçük bir programda kullanabilirsiniz.

Eklenmesi gereken, veritabanının kullanımıdır. wafer 2, veritabanı sorgu oluşturucu olarak Knex'i kullanır , Ve sizin için yapılandırıldı.

SQL deneyimi olan programcılar için, SQL'i kullanmak veritabanı geliştirmeye hızlı bir şekilde başlayabilir.

PhpMyAdmin'e girin, cAppinfo veritabanında gerekli tabloları oluşturabiliriz.

Zaten "Kitap" adında bir tablo olduğunu varsayıyoruz, o zaman veritabanını wafer2'ye nasıl eklemeli, kontrol etmeli ve silmeliyiz?

Söyleyecek çok şey yok, kod:

const {mysql} = required ('../ qcloud') const uuid = required ('node-uuid') module.exports = async ctx = > {var id = uuid.v1 // var kitap ekle = {id: id, ad: "Buz ve Ateş Şarkısı", fiyat: 88} mysql ("Kitap") bekliyor. insert (kitap) // var res = kontrol et mysql ("Kitap") bekleyin. burada ({id}). ilk // değişiklik mysql'yi ("Kitap") bekliyor. güncelleme ({fiyat: 66}). burada ({id}) // sil bekle mysql ("Kitap ") .del.where ({id}) ctx.state.data =" Tamam "}

Veritabanı işlemleri varsayılan olarak eşzamansız olarak gerçekleştirilir.İşletme, veritabanı okuma ve yazma işleminin eşzamanlı bir şekilde yapılmasını gerektiriyorsa, işlem ifadesinden önce await eklemeniz gerekir.

Daha gelişmiş SQL kullanımı için Knex.js resmi web sitesine bakabilirsiniz.

Son sözler

Küçük programım olan "Puncier" sahne arkasını wafer2'ye taşıdım. Geliştirme sırasında çeşitli çukurlar, Tencent Cloud'a bazı bariz hatalar getirdi. Belki de "Punci er" wafer 2'yi kullanan ilk küçük programdı.

wafer 2'nin kullanımı gerçekten çok kolay. Arka uç yapılandırması hakkında çok fazla bilgi sahibi olmamıza gerek yok Ön uç ve arka uç kodları küçük program geliştirme aracında yazılır ve arka uç kodu doğrudan geliştirme aracına yüklenir.

Bunu kullanarak, geliştirme ve üretim ortamlarını ayırt edebilirsiniz ve şu anda ücretsizdir, ancak her zaman ücretsiz bir sürüm olup olmayacağını bilmiyorum.

Ancak mevcut eksiklikler de aynı derecede açıktır: Örneğin, dosyalama uygun değil, giriş arayüzü mantıksız, SDK'da hatalar var, vb. Bu arada, sunucunun çöktüğü ve manuel yeniden başlatma gerektiren bir durumla da karşılaştım. Umarım Tencent Cloud bu sorunları bundan sonra çözebilir.

Genel olarak, gofret 2'nin kullanım için düşük bir eşiği vardır, ancak şu anda yeterince kararlı değildir. Kişisel projeler hala tamam, ticari projelerde kullanmak isterseniz bir süre gözlemlemeniz önerilir.

"Punci er" Mini Program Kullanım Bağlantısı

https://minapp.com/miniapp/3952/

`` Farkındalık Programı '' genel hesabını takip edin

  • WeChat arka planda yanıtla " Geliştirme ", küçük program geliştirme için tam bir eğitim seti edinin.
  • WeChat arka planda yanıtla " 666 "Bilinen Geliştirme İttifakına katılmak için.
EXCEL katılım masası ile bunu nasıl yapacağınızı öğretin
önceki
8 yıldır seni dört gözle bekliyorum! R yıldızı "Red Dead Redemption 2" nin 26 Ekim 2018'de yayınlandığını duyurdu
Sonraki
Messi, Ronaldo'ya bir şans vermek için sırayla mı gidiyor? 3 oyun oynadıktan ve başkanı patlattıktan sonra, 1-6 geride, altın botları kovalamak için umut yok
DNF: Küçük kız kardeşiniz henüz seviyeye ulaşmadı? Bu yükseltme kuponlarını ve deneyim kapsüllerini aldınız mı?
Sadece Chengdu'da değil, Luo Yonghao artık Hammer Beijing'in tüzel kişisi değil, Wen Hongxi devraldı.
EXCEL'de herhangi bir zamanda güncellenebilen bir grup köprü katalogları oluşturmanın çok akıllı bir yöntemini paylaşın
Chery Tiggo 5x piyasada, bu "akşam bölümü" dolu olabilir mi?
Ocak ayında ulusal hizmete havalı ve soğukkanlı bir şarkı verildi. İçe aktarılan çevrimiçi oyunların onay listesi: PlayerUnknown's Battlegrounds henüz incelenmedi
DNF: Luke Cross Five'ı sabahın dördünde gördünüz mü? Dolu ya da sadece bir yığın Gölge Dokuz!
İki 1-1'lik maç farklı bir kader yarattı: Premier Lig güç takımı ilerlemekten heyecan duydu, Inter Milan yenildi
Quanjianın 20 milyar imparatorluğunun ardında: Başkan, işine başlamak için "gizli bir formül" aldı ve ülkeye döndüğünde hız kazanmak için helikopterler kullandı.
1 milyar değerinde bir şirket satın alıp oyun işi departmanı kurarken Ali'nin "oyuna N. girişinin" bir hikayesi var mı?
DNF: Dadı: Hızlı bir takımın ne olduğunu bilmiyorsun! Baba: Acıyor!
H1Z1 hala kaydedildi mi? Her gün yalnızca 8000 kişi çevrimiçi! Ulusal hizmet birlikte çalışamaz, uluslararası hizmet gerçekten soğuk
To Top