一、前因
在制作課程設計的時候需簡單地操作Mysql資料庫使得小程式可以與其他端系統進行資料互動
這時候問題來了,僅僅只是因為一個插入表的資料庫操作就單獨制作一個Servlet看似又有點浪費服務器資源
這時候就想了下,為什么不能直接用微信小程式直接進行資料庫互動操作呢?
然后查了下檔案和百度,發現了云函式這強大的東西
云函式是一段運行在云端的代碼,無需管理服務器,在開發工具內撰寫、一鍵上傳部署即可運行后端代碼,
小程式內提供了專門用于云函式呼叫的 API,開發者可以在云函式內使用 wx-server-sdk 提供的 getWXContext 方法獲取到每次呼叫的背景關系(appid、openid 等),無需維護復雜的鑒權機制,即可獲取天然可信任的用戶登錄態(openid),
好家伙,開整
二、探Node
不要看到js就以為是前端語言
node.js是運行于服務端的JavaScript解釋器
所以,node.js是后端語言(跑題了)
微信云函式用的語言就是node.js
所以你要先安裝node.js
去官網下載一個吧
安裝程序是傻瓜式操作,全部下一步,中間有個勾勾問你是否自動幫你配置環境變數的把他勾上就好了
然后就去開通云函式
在你開通微信云服務的時候就會免費送你一定額度的資料庫、云函式、云儲存空間
三、云之基
在此之前需要先開通一個云開發,因為我已經開通了,所以就沒有截圖可以保留了
傻瓜式操作,不需要留筆記
創建工程->使用云環境
得到以下工程目錄

然后就創建新的云函式

輸入云函式的名字后就能得到這個新的云函式串列

現在還不著急,先把mysql的包安裝下來

運行命令
npm install mysql2

安裝完后的串列是這樣的

接下來就是寫代碼環節
四、源之碼
打開index.js
// 云函式入口檔案
const cloud = require('wx-server-sdk')
//引入mysql操作模塊
const mysql = require('mysql2/promise')
cloud.init()
// 云函式入口函式
exports.main = async(event, context) => {
const wxContext = cloud.getWXContext()
try {
const connection =await mysql.createConnection({
host: "192.168.1.1",
database: "database",
user: "root",
password: '123456',
})
var data="\'"+event.date+"\',";
data+="\'"+event.random+"\',";
data+="\'"+event.openid+"\',";
data+="\'"+event.username+"\',";
data+="\'"+event.icon+"\',";
data+="\'"+event.status+"\'";
var sql='INSERT INTO `login_log` VALUES ('+data+')';
const [rows, fields] = await connection.execute(sql);
console.log(rows);
} catch (err) {
console.log("鏈接錯誤", err)
return err
}
}
五、末言
其實用云函式已經違背了剛開始想要不浪費資源的初衷了,云函式按照本質來講就是服務器資源,但是不用再寫一個servlet部署上去就很棒,管他呢嘿嘿
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/196172.html
標籤:AI
上一篇:基于RT1064的電磁巡線小車
下一篇:BLE廣播流程介紹 藍牙廣播 低功耗藍牙廣播的實作流流程介紹 /BLE Advertising flow ----- 藍牙低功耗協議堆疊

