微信小程序访问mysql数据库流程详解
作者:低代码布道师 发布时间:2024-01-23 10:34:43
1 开通云上的mysql
经过询价,我发现阿里云的数据库是比较便宜的,新人购买非常划算。对于爱学习的博主来说,果断购买一个。
按照操作指引购买后,云会帮你创建一系列的环境,在控制台就可以看到属于自己的实例
点击操作列上的管理,就可以创建我们自己的数据库。配置的步骤是先创建数据库的账号
然后创建一个数据库
都设置好之后就可以登录数据库,创建表,加数据了
刚创建好的数据库只能内网使用,我们如果希望在小程序里访问还需要开通外网,这里加入白名单即可
2 创建自定义连接器
数据库准备好了之后,我们就可以创建自定义连接器来访问数据库了。登录微搭的控制台,点击新建自定义连接器
输入连接器的名称和标识
点击立即创建,创建自定义连接器方法
意图选择查询列表,类型选择云开发云函数
3 创建云函数
点击新建云函数
录入函数名称
点击确定就可以完成云函数的创建
4 安装依赖
我们创建好云函数后,从列表上点击函数名称进入
进入后切换到函数代码
如果我们点击保存并安装依赖会提示缺失package.json
把内容复制一下,点导航条的文件,创建一个文件,命名为package.json
将我们的内容复制到文件里,赋值好之后选中index.js,贴入如下代码
const mysql = require("mysql2/promise");
exports.main = async (event, context) => {
try {
const connection = await mysql.createConnection({
host: '你的数据库的公网ip',
user: '数据库的用户名',
password: '数据库的密码',
port: 3306,
database: '数据库名',
});
console.log('已连接')
const [rows, fields] = await connection.execute('SELECT * FROM `user`;');
// 这里可以对返回数据做加工
return rows;
} catch(err) {
console.log('错误连接', err);
return err;
}
};
需要替换成你自己的数据库的对应信息,替换好之后,因为我们引入了mysql的库,先需要安装依赖,在package.json里重新录入如下代码
{
"name": "app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {},
"author": "",
"license": "ISC",
"dependencies": {
"@cloudbase/node-sdk": "latest",
"mysql2":"latest"
}
}
依赖里我们多了一个mysql2的依赖,替换好之后再点击底部的保存并安装依赖按钮,安装对应的库。安装成功之后我们可以在node_modules文件夹下找到mysql2的文件夹
这样依赖就安装好了,依赖安装好之后我们可以点击方法测试,看看是否连接上数据库,数据有没有正确的返回
如果看到成功之后就说明一切都做好了。
5 出参映射
云函数创建好之后,我们回到微搭的自定义连接器界面,选择我们刚刚创建好的云函数
点击方法测试,看一下云函数能否正常调用,如果返回成功,就可以点击出参映射了
这样一个自定义连接器就创建好了
6 在小程序中使用连接器
连接器相当于我们的后台方法,还需要在前端进行调用,可以创建一个变量,用来接收连接器调用的返回值
在页面的生命周期函数里我们通过api的形式来调用连接器来获取数据
export default {
async onPageLoad(query) {
//console.log('---------> LifeCycle onPageLoad', query)
const result = await app.cloud.callConnector({
name: 'ljmysql_xi2ad3x',
methodName: 'ljmysql',
params: {}, // 方法入参
});
console.log(result)
$page.dataset.state.list = result
},
onPageShow() {
//console.log('---------> LifeCycle onPageShow')
},
onPageReady() {
//console.log('---------> LifeCycle onPageReady')
},
onPageHide() {
//console.log('---------> LifeCycle onPageHide')
},
onPageUnload() {
//console.log('---------> LifeCycle onPageUnload')
},
}
数据获取到之后,我们就添加组件,并且给组件绑定值就可以
绑定的时候使用表达式绑定就可以
来源:https://easycode.blog.csdn.net/article/details/125738141
猜你喜欢
- 情感短文本分类TextRNN是一种循环神经网络(RNN)结构,特别适用于处理序列数据。它通过将上一个时刻的隐状态与当前时刻的输入进行结合,来
- window环境安装mysql5.7.21,具体内容如下1. 从MySQL官网下载免安装的压缩包mysql-5.7.21-winx64.zi
- Python中try块可以捕获测试代码块中的错误。except块可以处理错误。finally块可以执行代码,而不管try-和except块的
- 详解Python 模拟实现生产者消费者模式的实例散仙使用python3.4模拟实现的一个生产者与消费者的例子,用到的知识有线程,队列,循环等
- 摘要什么是python对象的标识python对象相等的判断自定义python对象相等的条件python对象的标识python对象标识就是py
- 说到聚集索引,我想每个码农都明白,但是也有很多像我这样的猥程序员,只能用死记硬背来解决这个问题,什么表中只能建一个聚集索引,然后又扯到了目录
- 在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!!有时候我们写程序的时候,会出现一
- asp 中处理文件上传以及删除时常用的自定义函数:删除文件,建立目录的程序,根据原文件名生成新的随机文件名,CMS替换函数,将所有开始,结束
- 写在前面最近每日一更,我这菜鸡都有点儿不好意思了简单介绍简单用法是:assert expression让我们用程序来测试这个expressi
- 不知道从什么时候开始,在网络上到处可以看到div+css,到底什么是div+css呢?难道就是传说中的标准重构吗?标准从最简单的根源来说不是
- eg:如在后台的标签列表中,实现上移、下移、置顶功能主要实现思路是节点操作,比如说:上移,直接把点击项移动到前一个节点,以此类推,当然实际代
- 自己写的方法,适用于linux,#!/usr/bin/python#coding=utf-8import sysimport os, os.
- 本文实例为大家分享了python opencv实现图像配准与比较的具体代码,供大家参考,具体内容如下代码 from skimage
- 最近在学习python,之前一直用notepad++作为编辑器,偶然发现了VScode便被它的颜值吸引。用过之后发现它启动快速,插件丰富,下
- 前言晚上回家闲来无事,想打开某直播平台,看看小姐姐直播。看着一个个多才多艺的小姐姐,眼花缭乱,好难抉择。究竟看哪个小姐姐直播好呢?今天我们就
- 前言让我的电脑认识我,我的电脑只有认识我,才配称之为我的电脑!今天,我们用Python实现简单的人脸识别技术!Python里,简单的人脸识别
- 如何用组件实现自动发送电子邮件?我想做一个能够自动发送电子邮件的程序,该如何做? 这就要用到w3 upl
- 2007年1月,国务院 * 了中央“一号文件”,文件中对加快农业信息化建设有了更明确的部署,为新农村建
- 旋转椭圆实例代码:import matplotlib.pyplot as pltimport numpy as npfrom matplot
- 一、条件筛选1、数字筛选:sql = "Select * from [sheet1$] Where 销售单价 > 100&q