【小程序云开发】不用后端也能构建完整的微信小程序

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 本文介绍了如何从零开始学习和掌握微信小程序云开发,包括云函数、云数据库和HTTP触发等重要概念。通过详细的步骤和示例,读者将学会如何创建和部署云函数,以及如何使用云数据库来存储和管理小程序的数据。同时,本文还介绍了如何通过HTTP触发器实现小程序与外部API的数据交互,从而为小程序开发提供更灵活、高效的后端解决方案。无论您是初学者还是有一定经验的开发者,本文都将帮助您轻松掌握微信小程序云开发,并为您的小程序开发项目提供更多可能性。

什么是微信小程序云函数

image.png

微信小程序云函数是通过微信小程序云开发提供的一种服务器端代码,用于在小程序中进行服务器端的开发和部署。

以下是一些常见的微信小程序云函数类型:

  • 数据库触发云函数:用于在数据库的数据发生变化时自动触发执行的云函数,例如在新增、更新、删除等操作时执行一些特定的业务逻辑。
  • HTTP 云函数:用于处理小程序中通过 HTTP 请求触发的云函数,例如从小程序前端调用云函数来获取第三方数据或进行服务器端计算等。
  • 定时触发云函数:用于定时执行一些特定的业务逻辑,例如定时清理过期数据、生成报表等。

    云数据库

    云数据库是微信小程序云开发提供的一种基于 NoSQL 的云端数据库,用于在小程序中存储和管理数据。云数据库采用 JSON 文档格式进行存储,支持自动扩缩容和自动备份,具有高可靠性和高性能的特点。

以下是云数据库常用的增删改查语句示例:

插入数据:

// 在云函数中插入一条记录到集合 "users"
const db = cloud.database()
const result = await db.collection('users').add({
   
  data: {
   
    name: '张三',
    age: 20,
    gender: '男'
  }
})

查询数据:

// 在云函数中查询集合 "users" 中所有的记录
const db = cloud.database()
const result = await db.collection('users').get()

更新数据:

// 在云函数中更新集合 "users" 中的一条记录
const db = cloud.database()
const result = await db.collection('users').doc('docId').update({
   
  data: {
   
    age: 21
  }
})

删除数据:

// 在云函数中删除集合 "users" 中的一条记录
const db = cloud.database()
const result = await db.collection('users').doc('docId').remove()

在上述示例中,db.collection 函数用于指定操作的集合,doc 函数用于指定操作的文档 ID,data 参数用于指定要插入、更新或删除的数据。

这些示例仅为简单的示范,实际应用中可以根据业务需求和数据结构的复杂性使用更多的查询和操作语句,如查询条件、排序、限制等。

HTTP 云函数

HTTP 云函数是一种通过 HTTP 请求来触发的云函数。在微信小程序中,可以通过 HTTP 请求调用云函数,将请求参数传递给云函数进行处理,云函数处理完后可以返回结果给小程序端。HTTP 云函数可以用于实现一些需要与外部 API 交互、处理复杂业务逻辑、进行数据处理等功能。

下面是一个简单的 HTTP 云函数的示例,以 Node.js 为例:

/ 云函数入口函数
exports.main = async (event, context) => {
   
  // 获取请求参数
  const {
    num1, num2 } = event.queryStringParameters;

  // 进行业务逻辑处理
  const result = Number(num1) + Number(num2);

  // 构造返回结果
  return {
   
    statusCode: 200, // 返回的 HTTP 状态码
    headers: {
    'Content-Type': 'application/json' }, // 返回的 HTTP 头部
    body: JSON.stringify({
    result }) // 返回的数据
  };
};

在上面的示例中,云函数接收到一个 HTTP 请求,并从请求参数中获取到 num1 和 num2 两个参数,然后进行简单的加法运算,并将结果构造成一个 JSON 格式的 HTTP 响应返回给小程序端。

在小程序中,可以使用 wx.cloud.callFunction 方法来调用 HTTP 云函数,例如:

// 在小程序中调用 HTTP 云函数
wx.cloud.callFunction({
   
  // 云函数名称
  name: 'myHttpCloudFunction',
  // 传递给云函数的参数
  data: {
   
    num1: 2,
    num2: 3
  },
  // 成功回调
  success: res => {
   
    console.log(res.result); // 输出云函数返回的结果
  },
  // 失败回调
  fail: err => {
   
    console.error(err);
  }
});

以上示例展示了如何在微信小程序中调用一个名为 myHttpCloudFunction 的 HTTP 云函数,并传递两个参数 num1 和 num2 给云函数进行处理,并在成功回调中获取到云函数的返回结果。

定时触发云函数

微信小程序云开发支持定时触发云函数,也称为云函数的定时触发器。通过定时触发器,可以在指定的时间点或时间间隔内自动触发云函数的执行,用于实现定时任务、定时数据更新等场景。

以下是一个简单的微信小程序定时触发云函数的示例:

// 云函数入口函数
exports.main = async (event, context) => {
   
  // 获取当前时间
  const now = new Date();

  // 构造返回结果
  return {
   
    result: 'Hello from scheduled cloud function!',
    timestamp: now.toISOString()
  };
};

在上面的示例中,云函数会在每次触发时,返回一个包含当前时间戳和自定义消息的 JSON 格式的结果。

要设置定时触发器,需要在微信小程序后台的云开发控制台中进行配置。以下是一个示例的配置:

触发方式:定时触发

触发周期:每天
触发时间:例如,00:00(表示每天的零点触发)
设置后,云函数将会在每天的指定时间触发一次,并执行相应的业务逻辑。

注意:微信小程序云开发的定时触发器最小触发周期为每小时一次,最大触发周期为每天一次。如果需要更精确的定时触发,可以考虑使用第三方定时任务服务配合云函数来实现。

总结

总的来说,本文深入介绍了微信小程序云开发的核心概念和实际应用,包括云函数、云数据库和HTTP触发器等功能。

通过详细的步骤和示例,读者可以轻松学会构建完整的小程序后端解决方案,从而为小程序开发项目带来更多可能性和灵活性。掌握微信小程序云开发技能将为小程序开发带来更好的效果。


✍创作不易,求关注😄,点赞👍,收藏⭐️

相关文章
|
2月前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
8月前
|
小程序 JavaScript API
小程序云开发实战六:云数据库读取的数据显示在小程序端列表里
小程序云开发实战六:云数据库读取的数据显示在小程序端列表里
111 0
|
27天前
|
存储 前端开发 小程序
表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序
表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序
|
2月前
|
jenkins Devops 机器人
【DevOps】(五)Jenkins构建给企业微信推送消息
【DevOps】(五)Jenkins构建给企业微信推送消息
57 1
|
8天前
|
小程序 JavaScript 开发者
微信小程序构建npm
微信小程序构建npm
14 4
|
2月前
|
前端开发 JavaScript Go
Go 实战|使用 Wails 构建轻量级的桌面应用:仿微信登录界面 Demo
Wails 框架提供了一种简洁而强大的方式,让开发者能够利用 Go 的性能优势和 Web 前端的灵活性,从而能够使用更高效、更轻量级的方法来构建跨平台的桌面应用。本文探讨 Wails 框架的使用,从搭建环境到开发,再到最终的构建打包。
96 1
Go 实战|使用 Wails 构建轻量级的桌面应用:仿微信登录界面 Demo
|
2月前
|
小程序
外卖小程序-购物车模块表结构设计和后端代码
外卖小程序-购物车模块表结构设计和后端代码
26 0
|
2月前
|
小程序 前端开发 JavaScript
小程序全栈开发:前端与后端的完美结合
【4月更文挑战第12天】本文介绍了小程序全栈开发,涵盖前端和后端的关键点。前端使用WXML和WXSS进行页面结构和样式设计,JavaScript处理逻辑及组件使用;后端采用Node.js等语言处理业务逻辑、数据库设计和API接口开发。前端与后端通过数据交互实现结合,采用前后端分离模式,支持跨平台运行。调试测试后,提交微信审核并上线运营。掌握前端后端结合是小程序成功的关键。
|
2月前
|
小程序 开发者
体验版小程序为何无法访问云端服务器后端接口(请求失败...(已完美解决附加图片))?
体验版小程序为何无法访问云端服务器后端接口(请求失败...(已完美解决附加图片))?
77 0
|
2月前
|
JSON 小程序 前端开发
史上最详细微信小程序授权登录与后端SprIngBoot交互操作说明!!!附源代码
史上最详细微信小程序授权登录与后端SprIngBoot交互操作说明!!!附源代码
833 2