快速搭建个人云笔记小程序

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 本教程介绍如何使用小程序Serverless的数据存储服务开发一款简单的个人云笔记小程序。数据存储服务是基于MongoDB托管在云端的数据库,数据以JSON格式存储。作为开发者,您可以在客户端内直接操作数据,也可以在云函数中读写数据。

本章内容出自《15分钟打造你自己的小程序》电子书,点击下载完整版

快速搭建个人云笔记小程序

本教程介绍如何使用小程序Serverless的数据存储服务开发一款简单的个人云笔记小程序。数据存储服务是基于MongoDB托管在云端的数据库,数据以JSON格式存储。作为开发者,您可以在客户端内直接操作数据,也可以在云函数中读写数据。

步骤一:开发支付宝小程序

请参考以下步骤,开发支付宝小程序项目:

  1. 下载小程序模板代码,并在本地解压。
  2. 打开小程序开发者工具,然后选择支付宝 > 小程序
  3. 单击打开项目选择已解压的小程序项目。

image.png

  1. 打开本地项目页面,单击打开

image.png

  1. 打开手机支付宝App扫描弹出的登录二维码。登录后,选择已创建的支付宝小程序应用完成关联,然后单击确定
  2. 当提示绑定阿里云账号时,单击前往绑定阿里云账号,然后在打开的验证页面选择一种账号验证方式并完成验证。或右键单击左侧的server|未关联目录,然后选择关联Serverless

说明:确保您要绑定的阿里云账号已关联支付宝账号。如果尚未关联,在阿里云账号页面,单击第三方账号绑定绑定支付宝。
image.png

  1. 在项目文件列表中找到app.js文件,配置以下信息,然后保存。

    • appId是小程序的ID。您可以在蚂蚁金服开放平台的支付宝小程序页面查看App ID。
    • spaceIdclientSecretendpoint小程序Serverless控制台创建服务空间后可以获得。

image.png

步骤二:调试小程序

打开小程序模拟器,在弹出的服务授权框中仔细阅读《用户授权协议》后选择同意
image.png

小程序Serverless代码详解

  • 初始化

在使用小程序Serverless服务前,需要您在小程序中安装小程序Serverless客户端SDK并初始化。小程序Serverless客户端SDK的更多信息请参见安装客户端SDK2.2版本

// client/app.js
import MPServerless from '@alicloud/mpserverless-sdk';

const mpserverless = new MPServerless({
  uploadFile: my.uploadFile,
  request: my.request,
  getAuthCode: my.getAuthCode,
}, {
  appId: ' ', // 小程序应用标识
  spaceId: ' ', // 服务空间标识
  clientSecret: ' ', // 服务空间 secret key
  endpoint: ' ' // 服务空间地址,从小程序Serverless控制台处获得
});                    
  • 第一次进入小程序时添加授权

在调用小程序Serverless服务前,需要先调用authorize接口请求授权,支付宝小程序的授权请求参数authProvider应为alipay_openapi, 更多authorize接口信息请参见authorize

onLaunch(options) {
    //授权
    mpserverless.user.authorize({
      authProvider: 'alipay_openapi',
      // authType: 'anonymous'
    });
 },
  • 页面初始化数据

在页面显示时请求数据库note,过滤出parentId是当前目录的ID的节点。更多数据库查询接口信息请参见find

onShow() {
    mpserverless.db.collection('note').find({ parentId: this.data.parentId }).then((res) => {
      this.setData({ items: res.result });
      console.log(res);
    }).catch(console.error);
},
  • 新增笔记

以下代码实现了在数据库note中新增笔记,插入成功后刷新列表页。更多insertOne接口信息请参见insertOne

if (this.data.newNoteName != '') {
  mpserverless.db.collection('note').insertOne({
    name: this.data.newNoteName,
    type: Number(this.data.newNoteType),
    parentId: this.data.parentId,
    content: ''
  }).then(res => {
    console.log(res);
    if (res.success) {
      this.onShow();
    };
  }).catch(console.error);
};
  • 更新笔记

以下代码实现了根据文档ID异步更新文档内容,更多updateOne接口信息请参见updateOne

async updateData(currentData) {
    this.setData({
      note: currentData,
    });
    await mpserverless.db.collection('note').updateOne({
      _id: this.data.id
    }, {
      $set: {
        parentId: currentData.parentId,
        type: 0,
        name: currentData.name,
        content: currentData.content
      }
    })
      .then(() => { })
      .catch(console.error);
  },
  • 目录删除

以下代码实现了删除目录节点的功能,先查询该节点下是否有子节点,如果没有则执行删除,从而实现只能删除目录树的叶子节点。更多deleteOne接口请参见deleteOne

// 执行删除操作,只允许删除叶子节点
mpserverless.db.collection('note').find({
  parentId: parentId
}).then((res) => {
  if (res.success && res.affectedDocs == 0) {
    mpserverless.db.collection('note').deleteOne({
      _id: parentId
    }).then((res) => {
      console.log(res);
      my.showToast({
        type: 'success',
        content: '删除成功',
        duration: 3000,
        success: () => {
          my.navigateBack();
        },
      });
    });
  } else {
    my.showToast({
      type: 'fail',
      content: '该目录下存在子节点,请先删除子节点',
      duration: 3000,
      success: () => { },
    });
  };
});
相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
5月前
|
开发工具 Android开发 iOS开发
从零开始学 Xamarin 开发,新手教程全攻略,安装环境、创建项目、设计界面,轻松开启开发之旅!
【8月更文挑战第31天】Xamarin是一种高效的跨平台移动应用开发工具,迎合了日益增长的移动应用需求。本文为Xamarin新手提供了一套详尽的入门指南,涵盖开发环境搭建、项目创建与配置、用户界面设计及功能实现等关键步骤。通过具体示例,帮助初学者快速上手Xamarin开发,开启移动应用创作之旅。
99 0
|
6月前
|
安全 固态存储 Linux
服务器linux操作系统重装的完整流程-傻瓜式教学
服务器linux操作系统重装的完整流程-傻瓜式教学
|
8月前
|
弹性计算 数据安全/隐私保护
2024年《雾锁王国/Enshrouded》服务器部署启动全攻略:保姆级教程,轻松上手!
2024年《雾锁王国/Enshrouded》服务器部署启动教程:保姆级指导,让你轻松搭建私人游戏世界!本文将为您提供极简部署雾锁王国服务器的指引,「仅需轻点三次鼠标,即可完成开服」,和自己的朋友一起畅玩雾锁王国。雾锁王国(Enshrouded)作为一款热门多人在线游戏,为了给玩家提供稳定、流畅的联机体验,阿里云提供了高效便捷的快速部署解决方案,本文将为大家分享阿里云一键部署雾锁王国联机服务器详细教程。
|
8月前
|
NoSQL 数据可视化 Docker
这是一份简单到没朋友的上手图数据库的图文教程
本文是一份极度友好,你即便只会一个开机操作、不懂任何数据库的人,也能通过学习本文查询到你想要的图关系。
558 0
|
存储 安全 搜索推荐
今天分享的5款软件,你曾经用过几款?
分享是一种博爱的心境,学会分享,就学会了生活,今天分享的五款软件,是否有你曾经使用过的软件呢?
66 0
今天分享的5款软件,你曾经用过几款?
|
存储 小程序 数据库
【小程序云开发】30分钟搭建个人相册小程序
本文将通过实战“个人相册小程序”开发,教你如何借助小程序 ·云开发 能力,提升功能开发效率,提升数据隐私保护能力。
471 0
|
运维 安全 机器人
|
数据可视化 大数据 BI
6款电脑必备的常用软件(办公/高效/小白入门)
6款电脑必备的常用软件(办公/高效/小白入门)
326 0
|
安全 Linux 开发工具
【Rick_Bioinfo】小白初步学习linux服务器及配置生信相关软件有感
由于本地虚拟机安装VMware太卡了,于是本数据小白首次尝试在linux服务器上摸索,听闻阿里云有学生体验机会,非常感谢阿里云。本文展示了我自己摸索的过程,并总结了一系列如何解决因自身需要某些软件而出现的各类问题,同时也展示了本次体验的服务器的局限。