零基础入门低代码后端开发,只需几行代码就可以操作数据库

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 零基础入门低代码后端开发,只需几行代码就可以操作数据库

目录

创建自定义连接器

文档型数据库介绍

获取数据库实例

获取数据库的集合

查询数据

小程序中调用

总结

在日常小程序开发中,我们经常需要将表单收集到的数据存入数据库中,方便日后的查阅。如果采用传统架构,需要租用虚拟机,部署Mysql。后端服务如果直接暴露到公网上,如果没有做好安全防护,很容易被攻击。

尤其对于初学者,自己搭建后端服务无疑是困难的。那有没有相对轻量简便的方案来搭建后端服务呢?2021年推出的微搭低代码就可以方便的解决这个问题。低代码以云开发为技术底座,可以通过简便的API就能操作和访问线上的数据库。本文就带着大家体验一下线上后端服务的各种能力。

创建自定义连接器


低代码中是通过自定义连接器来操作数据库的。我们可以登录低码的控制台,点击自定义连接器,点击新建自定义连接器,来创建后端服务

在弹出的窗口输入服务的名称,标识会自动生成

点击立即新建按钮来增加后端的方法

我们这里选择自定义代码来操作数据库

文档型数据库介绍


要想获取数据库的引用,首先要知道数据库在哪存放的。微搭底层是使用的云开发,我们要切换到云开发Cloudbase产品去。具体可以在导航条上找到相应的产品。进入之后,找到数据库

关系型数据库不同的是,微搭使用的是文档型数据库。在关系型数据库里,是以表为单位来管理和存放数据的。而文档型数据库是使用集合的概念来存放数据的。

另外的不同就是数据结构的不同,关系型数据库的是以行和列来管理数据的。文档型数据库的概念叫记录。每条记录都是一个json对象

json对象最大的特点是以键值对来存储数据,左边是键,右边是值。初学者可能会说,我要怎么理解呢?我感觉你还是记忆比较好,因为IT也是独立的一个学科,本身零基础,然后非要和现实世界硬扯上关系,往往你理解的都是错误的。导致了在错误的道路上越走越远。

基础的概念熟悉了之后,那要如何操作数据库呢?操作数据库一般会有代码模板,我们可以从官方文档找到模板

module.exports = async function (params, context) {
  const result = await context.database.collection('数据库集合名称').get();
  // 在这里返回这个方法的结果,需要与出参定义的结构映射
  return {
    _id: 123456
  };
};

有的初学者会吐槽说官方文档写的让人看不懂。其实并不是官方文档写的不好,因为你任何基础也没有,上来就直接开始做软件,未免有点急于求成的感觉。

官方文档一般是给你提供编程指引,先是解释各种技术概念,然后会辅以代码。有了代码我们就需要知道在哪里使用,一般是可以将这段代码直接粘贴到自定义连接器的方法里,如下:

这里要注意需要把原来自动生成的代码都删掉,然后贴入官方文档的代码。这样,你的代码模板就有了。

获取数据库实例


我们如果需要操作数据库,一般是需要获取数据库的实例,我们改造一下代码,增加一行获取数据库实例的代码

module.exports = async function (params, context) {
  const db = context.database
  //const result = await context.database.collection('数据库集合名称').get();
  // 在这里返回这个方法的结果,需要与出参定义的结构映射
  return {
    _id: 123456
  };
};

这里const表示常量的意思,赋值之后就不允许改变。context表示程序的上下文,一般里边会预置各类属性,我们通过点的语法调用了database这个属性。通过这句话我们就获取到了数据库的实例

所谓的数据库实例就是当前这个云开发环境下的数据库

获取数据库的集合


获取到数据库之后,我们下一步就需要获取具体的集合,如果和关系型数据库做对比,就是要获取某张表,获取集合的代码如下:

module.exports = async function (params, context) {
  const db = context.database
  const collection = db.collection("user")
  //const result = await context.database.collection('数据库集合名称').get();
  // 在这里返回这个方法的结果,需要与出参定义的结构映射
  return {
    _id: 123456
  };
};

这里的user就是我们的集合名称,那这个名称要如何去找呢?我们先需要在数据模型找到我们需要获取的数据源

这里的标识还不是集合的名称,我们要在数据库的列表上挨个对比是哪一个集合

找到之后需要将这个名字替换到编辑器中

查询数据


我们获取到集合后,一般是先需要获取数据。我们可以调用get方法来获取数据。先看一下这个方法的介绍

一般看一个官方方法,需要了解三部分的内容。先是看接口描述,看这个方法是干什么用的。然后看入参,入参是我们调用的时候必须传入的。接着需要看返回结果,返回结果一般是我们需要获取的数据。

这里get方法是用来获取数据,最多只能获取100条,这个是必须要注意的。我们在关系型数据库是通过select语句来获取表的记录的,如果没指定是获取的全部数据。文档型数据库不允许返回全部,一般你在小程序部分调用的时候是需要考虑分页的,要不然就获取不到所有的数据。

我们再改一下代码,来获取一下数据

module.exports = async function (params, context) {
  const db = context.database
  const collection = db.collection("lcap-data-2hhicMDfJ-hsjcd_avb5fh8-preview")
  const result = await collection.get()
  //const result = await context.database.collection('数据库集合名称').get();
  // 在这里返回这个方法的结果,需要与出参定义的结构映射
  return result;
};

改造完之后可以点击界面上的方法测试,看看我们有没有获取到数据

因为我们的get方法不需要参数,所以提交参数那是一个空对象。运行之后测试结果是成功,而且也正确的返回了数据。正常之后就需要点击出参映射,让方法有返回值

小程序中调用


后端方法写好之后,一般是需要在小程序中调用的。调用比较简单,可以先定义个模型变量,来调用我们刚刚创建的方法。测试发现,无法在变量里调用,主要的原因是方法意图必须选择查询列表。勾选了之后我们就可以在模型变量里调用我们的自定义连接器的方法

展示的时候,我们可以绑定返回结果的数组

文本内容从循环中绑定即可

总结


我们本篇详细的介绍了如何在低代码中使用云开发数据库,需要先定义自定义连接器,通过api的形式获取数据。小程序中通过定义模型变量,然后做变量绑定即可。过程明白了,在开发后端服务时就不会无从下手了,还不会的同学赶紧去练一练吧。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
5天前
|
监控 Java 开发者
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第13天】随着现代应用的复杂性日益增加,传统的单体应用架构已不足以满足快速迭代和可扩展性的需求。本文将探讨如何通过微服务架构来提升后端开发的效率和系统的可靠性,涵盖微服务设计原则、技术栈选择、部署策略以及维护实践。我们将分析微服务的优势与挑战,并提供一系列实施建议,帮助开发者在构建和维护分布式系统时做出明智决策。
|
5天前
|
存储 监控 API
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第13天】在现代软件开发中,随着业务需求的多样化和开发流程的复杂化,传统的单体应用架构逐渐显得笨重且难以适应快速变化。微服务架构作为一种新兴的分布式系统设计方式,以其灵活性、可扩展性和技术多样性受到广泛关注。本文旨在探讨微服务架构的核心概念、设计原则以及实施策略,为后端开发人员提供一种提升系统性能和开发效率的有效途径。
42 2
|
1天前
|
监控 负载均衡 API
构建高效可靠的微服务架构:后端开发的新趋势
【5月更文挑战第19天】 在当今快速发展的数字时代,微服务架构已经成为了软件开发领域的一大热点。本文将深入探讨如何构建一个高效且可靠的微服务架构,以满足不断变化的业务需求和应对日益增长的用户需求。我们将从微服务的基本概念、优势、关键技术以及实践建议等方面进行详细阐述,为后端开发人员提供一套完整的解决方案。
|
2天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之采集oracle的时候报ORA-65040:不允许从可插入数据库内部执行该操作如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
20 3
|
2天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第18天】 随着现代软件开发的复杂性日益增长,传统的单体应用架构已难以满足快速迭代和灵活部署的需求。本文聚焦于一种新兴的解决方案——微服务架构,探讨其如何为后端开发带来革命性的改变。我们将深入分析微服务的核心概念、优势与挑战,并通过具体案例来阐述如何在实际项目中实施微服务架构。文章旨在为开发者提供一种系统化的方法,帮助他们理解并应用微服务架构,以提升系统的可维护性、扩展性和技术敏捷性。
14 2
|
2天前
|
测试技术 持续交付 API
构建高效的微服务架构:后端开发的现代实践
【5月更文挑战第18天】在数字化转型的浪潮中,微服务架构已成为企业追求敏捷、可扩展和容错能力的关键解决方案。本文将深入探讨微服务的核心概念,包括其设计原则、技术栈选择以及实施过程中的挑战与对策。通过对微服务架构实践的详细剖析,旨在为后端开发人员提供一套构建和维护高效微服务系统的实用指南。
|
3天前
|
Kubernetes API 数据库
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第17天】 随着云计算的普及和容器化技术的成熟,微服务架构已成为企业软件开发的首选模式。该架构通过将大型应用程序拆分为一系列小型、自治的服务来提供灵活性和可扩展性。本文将探讨微服务架构的关键概念,包括服务的细粒度划分、独立部署、以及如何通过容器编排实现高可用性。同时,我们将讨论微服务实施的最佳实践和面临的挑战,为后端开发者提供构建和维护微服务系统的实用指南。
|
3天前
|
敏捷开发 Kubernetes API
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第17天】 随着现代应用需求的多样化和复杂化,传统的单体应用架构逐渐显得笨重且难以适应快速变化。微服务架构应运而生,它通过将大型应用拆分为一系列小型、自治的服务来提供灵活性和可扩展性。本文将深入探讨微服务的概念,解析其核心组件,并展示如何利用现代后端技术栈构建和维护一个高效的微服务系统。我们将讨论微服务的优势,包括敏捷开发、独立部署、技术多样性以及弹性设计,并分析在实施过程中可能遇到的挑战,如服务发现、数据一致性和网络延迟问题。最后,我们将提供一个实际案例研究,以说明如何在现实世界中应用这些原则。
|
4天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之当 SQL Server 源数据库中的数据更新后,CDC 吐出的操作(op)是怎样的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
14 0
|
5天前
|
小程序 应用服务中间件 Linux
【Nginx】微信小程序后端开发、一个域名访问多个服务
【Nginx】微信小程序后端开发、一个域名访问多个服务
18 0