小程序的云开发是微信提供的一项后端服务,旨在为开发者提供简便、高效的开发体验。它是建立在微信公众平台的基础上,允许开发人员使用 JavaScript 代码直接进行云端开发,无需搭建服务器、学习运维等繁琐的操作。
在这篇文章中,我们将详细介绍小程序云开发的使用方法,主要包括以下几个部分:
1. 云开发的基本概念及功能
2. 如何开启云开发
3. 云开发的数据库操作
4. 云函数的编写与调用
5. 云存储的上传与下载
一、云开发的基本概念及功能
云开发是一个基于云的移动开发平台,它包括云函数、云数据库和云存储三大核心功能。开发者可以使用自己熟悉的前端技术进行开发,将前端代码上传到云端服务器上运行,快速构建小程序后端服务。
云函数:
云函数是在云端运行的 JavaScript 代码,可以实现在小程序中的数据操作、计算、调用第三方 API 等各种服务器端功能,而不用搭建服务器和进行运维操作。同时,云函数实现了超低成本、实时、扩展性好等云计算特点。
云数据库:
云数据库是基于 NoSQL 的数据库引擎,支持文档型和关系型数据存储,可以提供方便快捷的数据统计分析和数据可视化的集成服务。
云存储:
云存储是独立的对象存储服务,可为小程序用户提供高可靠、高可扩展、安全性高的云端存储服务,同时也提供了访问控制、身份验证等通用的功能。
二、如何开启云开发
1. 开通云开发
进入微信公众平台小程序管理后台,找到「设置」 →「开发设置」→「开发环境」,打开云开发功能,即可开启云开发。除此之外,开发者还需要开通云数据库等功能。
2. 登录云开发控制台
在开通云开发功能后,点击左侧菜单栏的「云开发」即可进入云开发控制台,在这里可以管理云函数、云数据库、云存储以及项目设置等功能。
三、云开发的数据库操作
云开发的数据库支持文档型和关系型数据存储,开发者可以使用小程序提供的 API 进行数据的增删改查操作。
1. 创建集合
在云开发控制台中进入云数据库,在「集合管理」中新建集合,输入集合名称及字段类型。这里需要注意的是:MongoDB 是一种文档型数据库,集合中每行记录即为一个 JSON 对象,字段名和字段值都是要求用户自定义的。
2. 数据的增删改查操作
在小程序脚本中使用 wx.cloud.database() 获取云开发数据库对象,之后就可以使用该对象调用数据库 API 进行数据的查询、修改、添加和删除等操作。
下面是一些 API 使用示范:
```javascript
// 初始化数据库对象
const db = wx.cloud.database()
// 查询操作
db.collection('user').where({
name: 'lily'
}).get({
success: res => {
console.log(res.data)
}
})
// 更新操作
db.collection('user').doc('5f71d66fd44d09...').update({
// data 里面的字段需要和集合的字段一一对应
data: {
age: 22
},
success: res => {
console.log(res)
}
})
// 添加操作
db.collection('user').add({
data: {
name: 'tom',
age: 26
},
success: res => {
console.log(res)
}
})
// 删除操作
db.collection('user').doc('5f71d66fd44d09...').remove({
success: res => {
console.log(res)
}
})
```
四、云函数的编写与调用
云函数是运行在云端服务器上的 JavaScript 代码,可以实现各种后端操作,包括请求第三方 API 、爬虫、数据计算等等。
1. 创建云函数
在云开发控制台中进入「云函数」管理页面,点击新建云函数,填写云函数名称,并选择云函数的运行环境。之后,可以进入本地项目文件夹,在命令行中输入以下命令安装云函数 SDK:
```
npm install --save wx-server-sdk
```
2. 云函数编写
在云函数文件夹下的 index.js 文件中编写云函数的具体功能代码。使用 wx-server-sdk 可以在云函数中和云数据库、云存储等平台组件进行交互,同时也可以使用 Node.js 中支持的各种库进行文件读取、http 请求等操作。
以下是一个云函数示例:
```javascript
// 引入 SDK
const cloud = require('wx-server-sdk')
// 初始化 cloud
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
const result = await cloud.openapi.subscribeMessage.send({
touser: wxContext.OPENID,
page: 'index',
lang: 'zh_CN',
data: {
thing1: {
value: '云函数测试'
},
time3: {
value: new Date().toLocaleString()
},
character_string2: {
value: '123456'
}
},
templateId: 'AT0000'
})
return result
}
```
3. 调用云函数
在小程序的页面脚本中,使用 wx.cloud.callFunction() 可以调用云端的云函数。在调用云函数时,需要指定云函数名称和传入云函数的参数。
以下是一个调用云函数的示例:
```javascript
wx.cloud.callFunction({
name: 'test',
data: {
a: 1,
b: 2
},
success: res => {
console.log(res.result)
},
fail: err => {
console.log(err)
}
})
```
五、云存储的上传与下载
云存储是小程序提供的一种对象存储服务,可以在应用中方便地存储和读取图片、音视频等文件。云存储上传和下载文件时,不需要使用 AppID、SecretID/SecretKey 等认证信息,具有相对较高的安全性。
1. 云存储的上传
通过 wx.cloud.uploadFile() 可以将本地文件上传到云存储中,上传时需要指定文件路径,以及指定上传后文件在云存储中的存储路径和文件名。
以下是云存储上传的示例代码:
```javascript
wx.chooseImage({
success: function(res) {
wx.showLoading({
title: '上传中...',
})
const filePath = res.tempFilePaths[0]
const cloudPath = 'my-image-folder/' + Date.now() + '-' + Math.floor(Math.random() * 1000000) + filePath.match(/\.[^.]+?$/)[0]
wx.cloud.uploadFile({
cloudPath,
filePath,
success: res => {
console.log(res)
wx.hideLoading()
},
fail: () => {
wx.hideLoading()
wx.showToast({
title: '上传失败',
icon: 'none'
})
}
})
}
})
```
2. 云存储的下载
通过 wx.cloud.downloadFile() 函数可将云存储中的文件下载到本地缓存中,下载文件时需要指定云存储中文件的路径和文件名,以及指定下载后文件在本地缓存中的路径和文件名。
以下是云存储下载的示例代码:
```javascript
wx.cloud.downloadFile({
fileID: 'cloud://my-appid.6d79-my-appid/my-image-folder/1598992830447-666783.jpg',
success: res => {
console.log(res.tempFilePath)
},
fail: err => {
console.error(err)
}
})
```
总结
小程序的云开发提供了一种便捷、高效的开发方式,让开发者可以更加专注于应用的业务逻辑,而无需深入研究后台服务的搭建维护。通过本文的介绍,我们可以了解到云开发的基本概念和功能,以及如何开启、使用云开发中的数据库、云函数和云存储等服务。运用好云开发,可以让我们的小程序更加快速优秀地构建和开发。
如果你喜欢我们的文章,欢迎您分享或收藏为众码农的文章! 我们网站的目标是帮助每一个对编程和网站建设以及各类acg,galgame,SLG游戏感兴趣的人,无论他们的水平和经验如何。我们相信,只要有热情和毅力,任何人都可以成为一个优秀的程序员。欢迎你加入我们,开始你的美妙旅程!www.weizhongchou.cn
发表评论 取消回复