阿里云七天云开发校园合伙人创造营 Day 6

云开发7天训练营学习计划

阿里云七天云开发校园合伙人创造营 Day 6_第1张图片

阿里云云开发平台校园合伙人招募 主要提供了 云开发平台 进行 Web 开发的体验,包括以下内容:

  • 认识 Serverless 云开发 (8.3) :学习云开发平台的基本概念和操作、团队协同、应用的开发、部署

  • 云函数 (8.4) :函数的基础概念,架构,调用方式、静态文件的托管方式

  • 开发Web接口 (8.5):学习使用函数开发 Web 接口、多个函数的同时开发,资源复用

  • 服务端渲染 (8.6):学习使用函数接入传统 koa 中间件,构建 Web 应用

  • 数据库调用 (8.7):学习接入数据库,调用数据存储

  • 多媒体托管和支付 (8.10):学习函数的文件多媒体托管和支持能力

  • 一体化方案开发实战 (8.11):学习和前端 ( react / vue ) 代码一起开发的一体化方案

完结撒花 ,点击上面的链接可以回顾这七天的内容哦~

Day 6: 在 Midway Serverless MySQL 示例模板中使用 SQL 语句

关于 Midway Serverless

关于 Midway Serverless 的相关介绍,请参考 Day2 的文章

每日任务

今日任务为使用 Midway Serverless MySQL 数据库示例模板创建 ToDo List 应用,编写查询表数据数量统计的 SQL 语句,执行函数返回数据数量

本次任务原理跟 Day5 相似,请先阅读 Day5 文章 的 任务拓展 部分

本次任务安排与上文的计划有出入,旨在熟悉 SQL 操作。

1. 准备开发环境

登入云开发平台,进入到应用列表,点击 创建新应用,新建一个 WEB 实验室解决方案的 Midway Serverless MySQL数据库示例

创建好后,进入 开发部署

阿里云七天云开发校园合伙人创造营 Day 6_第2张图片

2. 开发调试

进入 IDE 后,先在终端执行:

npm i --registry=https://registry.npm.taobao.org

安装 npm 依赖,因为依赖包很多,这里用了淘宝的镜像源,安装会更快。

2.1 配置数据库

默认为读取应用的环境变量,环境变量需要到 应用列表-应用配置 中修改。

本次任务无需使用自己的数据库,直接默认就好。

阿里云七天云开发校园合伙人创造营 Day 6_第3张图片

环境变量名 释义
MIDWAY_RDS_HOST RDS 数据库地址
MIDWAY_RDS_PORT RDS 数据库端口,默认为3306
MIDWAY_RDS_DBNAME RDS 数据库名称
MIDWAY_RDS_USERNAME RDS 数据库用户名
MIDWAY_RDS_PASSWORD RDS 数据库密码

由于环境变量需要部署的时候才能读取,为了方便调试,可以复制环境变量值到 src/apis/config/config.default.ts 文件并修改代码:

exports.dbConfig = {
  host: 'rm-uf6y14uhf0080yfrb7o.mysql.rds.aliyuncs.com', //process.env.MIDWAY_RDS_HOST
  port: 3306,										     //process.env.MIDWAY_RDS_PORT
  database: 'faas-test',                                 //process.env.MIDWAY_RDS_DBNAME
  username: 'faas_db_test',                              //process.env.MIDWAY_RDS_USERNAME
  password: 'YY6i8Jp7W_mtYxU'                            //process.env.MIDWAY_RDS_PASSWORD
};
2.2 开发统计功能

在函数文件 src/apis/index.ts 中新增一个函数:

@Func('count.handler')
async count() {
  const result = await this.db.query('select count(*) as SUM from todo'); //写入 SQL 语句
  return result;
}

这里使用到了这样的一条 SQL 语句:

select count(*) as SUM from todo;

count() 函数的作用是统计,count(*) 返回表中记录的数目,这里将返回值从表 todoselect 出来并定义了个别名 SUM


由于增加了一个新的函数,接下来需要修改函数定义文件 f.ymlfunctions 下定义这个新函数:

functions:
  count:
    handler: count.handler
    events:
      - apigw:
        path: /api/count

注意正确缩进!

2.3 调试部署

在终端执行 npm run dev 运行项目,点击生成的链接,可以访问这个页面,内容均来自默认的公共数据库。

阿里云七天云开发校园合伙人创造营 Day 6_第4张图片

在链接后面加上 /api/count 即可查看函数返回值,这个值是动态的,当用户对表中数据进行增、删时会在该值中有所体现。

阿里云七天云开发校园合伙人创造营 Day 6_第5张图片

警告:

正式部署上线前请将环境变量配置为自己的数据库和 AccessKey,记得将 src/apis/config/config.default.ts 文件改回默认状态。

任务拓展

除了上述方法查看统计量的返回值,还可以用 midway 函数开发命令行工具调用该函数,这个方法在 Day2 和 Day3 中均有介绍。

首先执行命令安装 midway 函数开发命令行工具:

npm install @midwayjs/faas-cli -g

执行 f invoke -f count 调用 count 函数,结果如下图

在这里插入图片描述

上图主要信息:

--------- result start --------

{"isBase64Encoded":false,"statusCode":200,"headers":{"content-type":"application/json; charset=utf-8"},"body":"[[{\"SUM\":100494}],[{\"SUM\":100494}]]"}

--------- result end --------

总结

本次任务主要复习了 Day5 使用 Midway Serverless 数据库示例创建 ToDo List 的操作和连接数据库的原理,并在此基础上复习了 Midway Serverless 函数定义、调用的方法和运用 SQL 语句实现数据操作、显示等功能。

对创造营后续内容感兴趣的朋友们记得 关注我 哦~

你可能感兴趣的:(阿里云七天云开发全记录,mysql,typescript,reactjs,经验分享)