微信小程序云开发的优点有哪些?怎么解决?

2021-05-04
来源:网络整理

看看我标记的句子:“与此同时,此功能与开发人员使用的云服务兼容,并且不是互斥的”,这意味着当您使用微信小程序云开发时,它可以仍可与普通云服务器一起使用。

在下面输入文字

一、微信小程序云开发的优势

我要介绍的第一件事当然是小程序云开发的优势。

1.无需构建自己的服务器

我相信这就是大多数人选择使用小型程序云进行开发的原因。无需自行构建服务器,从而节省了构建服务器的时间和金钱。 云开发为每个人提供了一个免费的基本版本。

如果您不上传高质量的图片,音频和视频,此配置就足够了。为什么要排除这三个类别,我将给出一个实际的例子进行解释。 (二、 1.)

2.项目迅速上线

的云开发不能依靠外部云服务器来执行数据库的添加,删除,修改和对象存储。这使项目可以快速上线。每个人都应该知道,如果您使用外部云服务器来创建该接口,则需要为该配置一个合法的域名。看看这方面的官方文档。

首先,仅支持该协议。本地服务器必须解析用于ICP归档的域名,绑定ssl证书,然后使用它。此时,某些人可能会考虑使用外部服务器绕过归档。再往下看,您会发现微信已经考虑过这种可能性,并且必须通过ICP注册域名是强制性的。这样,在30-40天的申请时间内就无法逃脱。

换句话说,您无需等待ICP备案时间就可以使用云进行开发,并且可以在开发完成后立即对其进行查看和启动。这也是为什么我首先使用Mini 进行开发的原因,它节省了很多时间。

3.轻松获取用户凭据

小程序云开发区别_微信小程序游戏开发_微信小程序怎么开发

对于开发者来说,它等同于该小程序中用户的“身份证”和用户的唯一标识。对于不使用云开发的小程序小程序云开发区别,获取用户凭证的过程非常复杂。看看官方流程图

看着流程图,我感觉我的头皮麻木了。总体过程如下:小程序首先获取用户的登录代码,然后将此代码传递到其自己的后端服务器,然后在后端服务器接口上访问微信官方,传递该代码和一系列密钥(官方微信)界面将用户凭证(包括)传递给后端服务器,后端服务器再将其传递给微信小程序。这是整个获取过程。

如果使用微信小程序云开发,这非常简单:只需一个简单的云功能,并且可以在小程序一侧触发该云功能。

//云函数主要代码 login云函数 const cloud = require('wx-server-sdk') cloud.init({ env: 'xiaodou-jtc8g'//云开发环境ID }) exports.main = (event, context) => { console.log(event) console.log(context) const wxContext = cloud.getWXContext() return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, env: wxContext.ENV, } }

//小程序端请求代码 wx.cloud.callFunction({ name: 'login',//上面云函数的名字 data: {}, success: res => { console.log(res) } })

只有两部分代码,您可以轻松获取用户凭据,效果如下

二、微信小程序云开发的难关1. CDN流量的基本版本太小

在最近的一个项目中,我只是在开发和测试期间使用了上传/下载相册的原始图片质量(四到五天)。那时,我意识到了这件事的严重性,因为该项目上线后,每天需要数百名用户使用。如果像我测试的那样,CDN流量可能会在两天内用完。一旦CDN流量用尽以升级配置,每月费用至少为30元。此价格可用于在外部购买优质的对象存储服务。

幸运的是,我早些时候发现了这个问题。我及时控制了上传图片的质量。每次上传图片时,程序都会自动将其压缩一次。每张照片可能都在里面。正式使用后消耗约1mb。 CDN流量。 (每日平均活跃用户约为60)

2.云数据库有很多限制

我认为这个坑对我来说是最深的。云数据库有两个限制。第一个方面是小应用程序可以获取的数据项数量的限制。第二个方面是对云数据库读写权限的限制。

([1)迷你终端读取限制

小型终端直接请​​求数据库,每次最多可以读取20条数据

使用云功能请求数据库,然后通过小程序触发云功能,每次最多读取100条数据

如果每次需要请求100个以上的数据,则需要使用skip进行请求,然后将它们组合在一起。对于特定操作,您可以查看官方文档或其他博客。

([2)云数据库读写权限限制

在谈论这个坑之前,让我先谈谈。小程序云数据库是非关系数据库,不能使用外键和内部键联合查询。 (与上下文无关,本文中未提及)

云数据库最开放的权限是:所有用户都可以读取它,只有创建者才能更改它。

换句话说,您已经创建了一条记录,而其他人则无法修改或删除它,这导致了一系列问题。这是我实际项目的一个示例。

例如:当前有一个多座位的自修室供用户预订。用户每次预订时都可以选择使用时间。此后,其他人可以再次预订座位。

一个简单的场景。在正常逻辑下,数据库的自修室表中应包含这三个主要字段。自修室标识符(r_id),自修室的到期时间(),以及自修室是否可使用的时间表()。

微信小程序游戏开发_小程序云开发区别_微信小程序怎么开发

当用户选择预订自学室时,我仅需要确定自学室是否为真。如果为true,则用户可以保留它。保留成功后,刷新并将其设置为OK。

但是,对于Mini 提供的云数据库,所有用户都可以读取最开放的权限,只有创建者才能更改它。这导致上述逻辑不起作用。我们需要更复杂的逻辑来实现此功能。

我当时所做的是:每次用户预定一个自修室时,他都会提交一条数据,将每个自修室中所有预定的数据按时间顺序逐个放入堆栈中,然后将最新的预订,以便下次有人预订时,他们只需要比较数据是否达到最高即可判断当前是否可以预订自修室。不要修改记录以实现覆盖删除功能。

3.对外开放有很多限制

一个普通的项目通常配备一个后台管理系统,该系统与共享一个数据库来管理数据。由于云开发随附的云数据库位于内部,因此,如果外部人员想要访问此数据库,则需要稍微复杂一些的过程:

首先使用官方界面获取呼叫凭证,然后使用指定的界面通过此凭证添加,删除,修改和检查数据库。此外,此过程中消耗的资源也包含在基本配置中,每天有50,000个在线请求。

三、我对小程序云的开发总结

在介绍了云开发的优点和陷阱之后,我认为适用于云开发的受众非常清楚:如果您没有注册域名和云服务器,则希望使该项目快速联机,并且对云存储和云数据库的要求不高,那么云开发非常适合您,您可以以零开发成本发布微信。

如果您的日常活动用户很多,并且不想花钱升级云开发的配置,那么的云开发不适合您。

不用担心,如果您没有太多的日常活动用户,并且基本功能对云功能的要求就足够了,那么您可以使用云开发来减少一些复杂的流程,然后与自己的合作外部服务器开发,效果极佳。如果有机会,我将在以后的博客中介绍如何使用云功能与外部服务器协作(无需解析域名注册,http协议)来实现数据请求。

总的来说,我认为小程序云开发的优点胜于缺点

分享