wafer2如何實現(xiàn)輕松部署小程序后端

這篇文章將為大家詳細講解有關wafer2如何實現(xiàn)輕松部署小程序后端,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

公司主營業(yè)務:網(wǎng)站制作、成都網(wǎng)站設計、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出西盟免費做網(wǎng)站回饋大家。

前端程序員開發(fā)一個自己的小程序,比起學習小程序開發(fā),更大的難點在于搭建小程序的后臺。

本文從一個初學者的角度,簡單介紹一下騰訊云推出的小程序解決方案 wafer2,讓沒有后臺開發(fā)經(jīng)驗的程序員,也能搭建起自己的小程序后臺。

簡介

wafer

后臺的搭建涉及到購買服務器、購買數(shù)據(jù)庫,然后要在服務器上安裝運行環(huán)境等。說實話,我連要在服務器上裝什么都不知道。所以希望能有一個東西,幫我把這些都做好,要是再提供一些登錄之類的常用接口就更好了。這就是 wafer 所做的。

其實在小程序后臺配置域名的地方,就有跳轉到騰訊云的鏈接:

進入后按照指引購買,就可以擁有一個配置好的后臺。

wafer2

wafer 相對于自己搭建后臺已經(jīng)方便很多了,但我用起來還是感覺有難度。我不熟悉 Linux,也搞不懂如何測試代碼。直到發(fā)現(xiàn)騰訊云又推出了 wafer2。

如果你用上了新版小程序開發(fā)工具,會在工具的右上角發(fā)現(xiàn)一個「騰訊云」的按鈕:

這個按鈕就是用來連接 wafer2 的。

我們可以直接在小程序開發(fā)工具里編寫后臺代碼,并上傳代碼,后臺是區(qū)分開發(fā)環(huán)境和生產環(huán)境的。

下面我們看看怎么使用 wafer2。

搭建

開發(fā)環(huán)境

搭建 wafer2 很簡單,大家按照官方文檔來,應該沒什么問題的,這里就不贅述了。

生產環(huán)境

官方文檔說的都是開發(fā)環(huán)境,要是你想部署到生產環(huán)境,有些配置需要改一下。

域名

開發(fā)環(huán)境的域名是騰訊云分配的 xxx.qcloud.la,而生產環(huán)境需要使用自己在騰訊云里的域名。

通過騰訊云管理中心注冊的域名,會自動部署 HTTPS 證書。但是要備案的話,需要登記服務器 ip,而 wafer2 的服務器 ip 是沒有提供給我們的。目前備案只能再買一個服務器……

綁定域名后,可以在開發(fā)工具「詳情」-「騰訊云狀態(tài)」確認生產環(huán)境域名:

切換到生產環(huán)境后,別忘了把客戶端的接口域名也改一下。

數(shù)據(jù)庫

在騰訊云管理中心里,修改生產環(huán)境 MySQL 的登錄密碼。然后登錄 phpMyAdmin,在首頁可以看到 MySql 的服務器 ip 地址,記下來。

回到開發(fā)工具,找到 server/config.js,修改里面 MySql 配置的 ip 地址及登錄密碼:

  mysql: {
    host: '修改為生產環(huán)境 ip',
    port: 3306,
    user: 'root',
    db: 'cAuth',
    pass: '修改為生產環(huán)境密碼',
    char: 'utf8mb4'
  },

在開發(fā)工具上傳正式代碼,再到管理中心的生產環(huán)境,點擊「代碼部署」。這樣就完成生產環(huán)境的配置及部署了。

比外需要注意,開發(fā)環(huán)境的 MySql 是 5.7 的,而生產環(huán)境是 5.6 的。注意不要在開發(fā)的時候使用 JSON 等 MySql 5.7 才有的功能。

登錄

先說一下小程序基本都會用到的登錄。

使用

wafer2 的客戶端及服務端 sdk,已經(jīng)集成了登錄邏輯,在客戶端引用 sdk 后,只要調用它的 login 方法就可以實現(xiàn)登錄了:

qcloud.login({
  success: res => {
    console.log('登錄成功', res)
  },
  fail: err => {
    console.log('登錄失敗', err)
  }
})

登錄成功會將用戶數(shù)據(jù)保存在數(shù)據(jù)庫 cAuth 的 cSessionInfo 表里,并將用戶數(shù)據(jù)返回。

看起來很美好,但是這里面是存在一些問題的。

問題

用戶登錄過之后會將用戶信息緩存在本地,當有緩存的時候會將用戶信息直接返回。但是 sdk 中,緩存的存取都是有問題的,有緩存的情況下,會返回 undifined。

這是個很低級的錯誤,問題已經(jīng)給官方反饋了。截止到寫這篇文章,取數(shù)據(jù)的地方改了,但存的地方還沒改……

所以現(xiàn)在要正常使用,需要到 wafer2-client-sdk/lib/login.js,找到保存用戶數(shù)據(jù)的地方:

Session.set(res.skey);

修改為:

Session.set(res);

另外,還想吐槽一下,sdk 里 wx.login 和 wx.getUserInfo 是搭配使用的。

也就是說,必須要獲取到用戶信息,才能實現(xiàn)登錄。而我們知道,小程序在獲取用戶信息時會彈窗,并且用戶是可以拒絕的。拒絕后一段時間內,調用 wx.getUserInfo 都不會再彈窗??梢哉f wafer2 沒有考慮用戶拒絕授權的情況。而這恰好是微信不提倡的做法,甚至可能導致無法通過審核。

這個問題我也向官方反饋了。

第一個接口

學習要有目的性才能保持興趣,配置完了我們來寫一個自己的接口。

wafer2 基于 Node.js 平臺,使用了 Koa2 框架。

在 server/controllers 下新建文件 hello.js,輸入如下代碼:

module.exports = async ctx => {
  ctx.state.data = "Hello World !"
}

代碼很簡單,就是暴露一個返回結果是「Hello World !」的方法,「Hello World !」會被放在請求結果的 data 里。

然后我們打開 server/routes/index.js

添加一句代碼:

// 測試接口
router.get('/hello', controllers.hello)

代碼就只有這么多。保存之后點擊「騰訊云」-「上傳測試代碼」,如果是第一次上傳要勾上「部署后自動安裝依賴」。等待上傳成功,就可以測試我們的接口了。

調用 xxx.qcloud.la/weapp/hello,看是否返回以下結果:

{
  code: 0,
  data: "Hello World !"
}

恭喜!你自己開發(fā)的第一個接口已經(jīng)調通了!

數(shù)據(jù)庫操作

wafer2 使用了 knex 作為數(shù)據(jù)庫的查詢構造器,并且已經(jīng)配置好了。對于有 sql 經(jīng)驗的程序員,可以很快的上手。

我們可以在 phpMyAdmin 里,在 cAppinfo 這個數(shù)據(jù)庫里創(chuàng)建需要的表。

假如已經(jīng)有一個「Book」的表,下面代碼,簡單展示了在 wafer2 里,如何對數(shù)據(jù)庫進行增查改刪:

const { mysql } = require('../qcloud')
const uuid = require('node-uuid')

module.exports = async ctx => {
  var id = uuid.v1()
  // 增
  var book = {
    id: id,
    name: "冰與火之歌",
    price: 88
  }
  await mysql("Book").insert(book)
  // 查
  var res = await mysql("Book").where({ id }).first()
  // 改
  await mysql("Book").update({ price: 66 }).where({ id })
  // 刪
  await mysql("Book").del().where({ id })

  ctx.state.data = "OK"
}

數(shù)據(jù)庫操作默認都是異步執(zhí)行的,如果要等待操作完成,需要在操作語句前加上 await。

關于wafer2如何實現(xiàn)輕松部署小程序后端就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)站名稱:wafer2如何實現(xiàn)輕松部署小程序后端
鏈接URL:http://bm7419.com/article30/jdgoso.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航品牌網(wǎng)站建設、微信公眾號、關鍵詞優(yōu)化靜態(tài)網(wǎng)站、服務器托管

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)