记一次微信小程序云函数操作Mysql数据库

一、前因

在制作课程设计的时候需简单地操作Mysql数据库使得小程序可以与其他端系统进行数据交互
这时候问题来了,仅仅只是因为一个插入表的数据库操作就单独制作一个Servlet看似又有点浪费服务器资源
这时候就想了下,为什么不能直接用微信小程序直接进行数据库交互操作呢?
然后查了下文档和百度,发现了云函数这强大的东西

云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。
小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内使用 wx-server-sdk 提供的 getWXContext 方法获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。

好家伙,开整

二、探Node

不要看到js就以为是前端语言
node.js是运行于服务端的JavaScript解释器

所以,node.js是后端语言(跑题了)
微信云函数用的语言就是node.js
所以你要先安装node.js
去官网下载一个吧

安装过程是傻瓜式操作,全部下一步,中间有个勾勾问你是否自动帮你配置环境变量的把他勾上就好了
然后就去开通云函数
在你开通微信云服务的时候就会免费送你一定额度的数据库、云函数、云储存空间
记一次微信小程序云函数操作Mysql数据库_第1张图片

三、云之基

在此之前需要先开通一个云开发,因为我已经开通了,所以就没有截图可以保留了
傻瓜式操作,不需要留笔记

创建工程->使用云环境
得到以下工程目录
记一次微信小程序云函数操作Mysql数据库_第2张图片
然后就创建新的云函数
记一次微信小程序云函数操作Mysql数据库_第3张图片
输入云函数的名字后就能得到这个新的云函数列表
在这里插入图片描述
现在还不着急,先把mysql的包安装下来
记一次微信小程序云函数操作Mysql数据库_第4张图片
运行命令

npm install mysql2

记一次微信小程序云函数操作Mysql数据库_第5张图片
安装完后的列表是这样的
记一次微信小程序云函数操作Mysql数据库_第6张图片
接下来就是写代码环节

四、源之码

打开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部署上去就很棒,管他呢嘿嘿

你可能感兴趣的:(微信小程序,小程序)