前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序云开发初体验

小程序云开发初体验

原创
作者头像
Thor
修改2020-05-19 17:47:25
1.1K0
修改2020-05-19 17:47:25
举报
文章被收录于专栏:云上服务云上服务

微信小程序有提供云开发的支持,这次尝试使用这种方式开发一个类似pasterbin的微信小程序。

支持粘贴代码在微信中分享,可以避免直接通过聊天框发送代码时被截断,且显示效果不佳的问题。

小程序最终大概是长这样的:

功能分析

核心功能就两点:

  1. 有一个输入框可以粘贴代码文本,然后调用云函数将内容保存到云数据库中
  2. 根据id查询到数据库中的代码片段,然后用markdown渲染语法高亮显示出来

小程序端的UI交互逻辑不提,在云端执行的就是两个云函数:

  1. createSnippet:代码片段入库
  2. getSnippet:读取代码片段

创建项目

在微信开发者工具创建项目时,需要选择上小程序-云开发这一项,然后按照后续的步骤完成项目的创建,中间的过程会有点长,需要在微信开发者平台上完成个人的身份认证等等,在创建完成之后点击开发者工具中的云开发按钮,可以看到相关的信息:

这里我们主要就使用数据库和云函数两个功能。

使用小程序账号登录腾讯云的web控制台也可以看到并操作相关的资源,https://console.cloud.tencent.com/

创建数据库集合

在开发者工具的云开发控制台中先创建数据库集合,这里的数据库和集合的概念和monogdb基本一致,了解过mongodb的同学马上就能理解:

创建云函数

在开发者工具中新建新云函数

我们需要以下两个云函数,代码都非常简单

  1. createSnippet,保存代码片段
代码语言:txt
复制
'use strict';
const cloud = require('wx-server-sdk')
cloud.init({})
exports.main = async(event, context) => {
    console.log("create a new snippet")
    let codeText = event["code"]
    console.log(`code: ${codeText}` )
    const db = cloud.database()
    //保存代码到数据库中
    let res = await db.collection("snippet").add({
       data: {
           code: codeText
       }
    })
    console.log(res)
    return res
};
  1. getSnippet,读取代码片段
代码语言:txt
复制
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  console.log('get snippet:', event['id'])
  const db = cloud.database()
  let res = await db.collection("snippet").doc(event['id']).get()
  console.log('get snippet:', res)
  return res
}

这里需要注意的时,由于我们使用到了云环境的资源,在代码中必须先调用 cloud.init()方法来做初始化。

小程序调用云函数

提交代码片段:

代码语言:txt
复制
wx.cloud.callFunction({
      //云函数名称
      name: 'createSnippet',
      //云函数的参数
      data: {
        code: this.data.codeText,
      },
      success: res => {
        console.log('[云函数] [createSnippet] 调用成功:', res)
        let snippetId = res.result._id
        console.log('snippetId:', snippetId)
        //调用成功之后跳转到显示页面
        wx.hideLoading({
          complete: (res) => {
            wx.navigateTo({
              url: `/pages/view/view?_id=${snippetId}`,
            })
          }
        })

      },
      fail: err => {
        wx.hideLoading({
          complete: (res) => {
            wx.showToast({
              icon: 'none',
              title: '调用失败',
            })
          },
        })
        console.error('[云函数] [createSnippet] 调用失败:', err)
      }
    })

读取代码片段:

代码语言:txt
复制
wx.cloud.callFunction({
      name: 'getSnippet',
      data: {
        id: _id,
      },
      success: res => {
        console.log('[云函数] [getSnippet]  调用成功:', res)
        //显示逻辑
        wx.hideLoading()
      },
      fail: err => {
        console.error('[云函数] [getSnippet]  调用失败:', err)
      }
    })

云函数本地调试

可以在开发者工具中开启云函数的本地调试功能:

简单总结

是不是非常的简单?微信提供的这套开发环境已经非常完善,目前提供的数据库云存储和云函数的能力,已经可以满足很多场景下的需求。另外如果不是小程序应用,也可以使用腾讯云单独提供的CloudBase云开发环境,具备和小程序云开发同样的能力。最后,可以体验一下我的这个小程序,在微信中愉快的发送代码吧:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 功能分析
  • 创建项目
  • 创建数据库集合
  • 创建云函数
  • 小程序调用云函数
  • 云函数本地调试
  • 简单总结
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档