微信小程序云函数操作云数据库Mysql
云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。 小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内使用 wx-server-sdk 提供的 getWXContext 方法获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。
一、node安装
去官网http://nodejs.cn/download/下载。 window8之前的版本,https://nodejs.org/dist/选择版本下载。
创建工程->使用云环境 得到以下工程目录 在cloudfunctions,右击插入云函数mysql-l 在mysql-l右击在终端打开,运行npm install mysql2命令。 安装过程中如没有完整安装,需删除已安装的云函数、已上传的云函数、C:Users***AppDataRoaming pm pm-cache这个目录,后按照上面的操作重新新建云函数
首先四个都会下载js包到moudles里面,只是package.json里面不同(这个内容复制) npm install 安装所有依赖 npm install --production 安装生产依赖 npm install xx --save 安装XX到生产环境依赖 npm install --save-dev 安装XX到开发环境依赖
三、代码 在云函数index.js中
const cloud = require(wx-server-sdk)
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
const mysql = require(mysql2/promise);
exports.main = async (event, context) => {
try {
const connection = await mysql.createConnection({
host: "你的ip", //内网ip地址
user: "root", //数据库的用户名
password: "密码", //数据库密码
database: "******", //数据库名称
port:"******",默认不用这项
})
const [rows, fields] = await connection.query(
SELECT * FROM `ghjgxx` WHERE `bh` = ?,[event.bh]
);
connection.end(function(err) { //注意要断开连接,不然尽管获取到了数据,云函数还是会报超时错误
console.log(断开连接)
});
console.log(rows)
console.log(fields)
return rows
} catch (err) {
console.log("连接错误", err)
return err
}
}
(1)测试云函数
右击mysql-l,选择上传并部署:云端安装依赖(不安装node_modules),点击云开发→点击云函数→点击云端测试,运行测试。(上述云函数更改查询即可测试)
(2)调用云函数
通过事件event传值云函数查询。
Page({
data:{
bh:,
jg:
},
weizhiInput1: function (e) {
this.setData({
bh: e.detail.value
})
},
cx() {
var that=this
wx.cloud.callFunction({
name:"mysql-l",
data:{
bh:this.data.bh,
},
success: res => {
console.log("请求成功!", res)
if (res.result.length ==0) {
var jg1 =无该分类结果
} else {
var jg1 = res.result[0].jg;
}
this.setData({
jg:jg1
})
},
fail: err => {
console.log("请求失败!",res)
}
})
}
})
wxml代码
<view>
<text>位置分类:</text>
<input class="weui-input" auto-focus placeholder="输入位置" bindinput="weizhiInput1" />
</view>
<button type="primary" bindtap="cx">查询显示</button>
<text>>查询结果</text>
<view>{
{jg}}</view>
