Pocketbase,在点击中的现成的后端
#javascript #网络开发人员 #go #fullstack

至于自由职业者的开发人员,他的作品最多将是购物车或内容管理服务。但是,后端的任务将是数据库,文件存储和身份验证管理。

在他的每项工作中,他都解决了几乎相同的问题,而有些人选择了诸如数据库管理和其他常见后端服务之类的服务。但是,当这些服务无法承受时,问题出现了,因为它很昂贵或很难配置。

在此简短文章中,这是一项新服务,这将是解决此问题的解决方案。

什么是Pocketbase?

enter image description here
PocketBase是一种用GO编程语言编写的开源后端服务,它可以实现实时数据库,文件存储,身份验证系统,角色和权限管理器和电子邮件引擎,并带有优雅的Admin UI仪表板来管理数据库和其他服务。

>

PocketBase支持JavaScript和DART SDK,以便从客户端访问后端。这使得完整的堆栈开发比以往任何时候都更加容易,因为开发人员不应受到数据库,角色和权限管理,实时网络插款和其他后端服务的困扰,因为PocketBase可以在点击中启用所有这些服务。

为什么要袖珍。

这是偏爱Pocketbase而不是Firebase等其他服务的几个原因。

  • 开源,因此,它可以在诸如Fultr的云服务中托管

    成本和根据您的用例定制。

    • 单文件可执行。因此,在云实例上托管很容易,只需运行可执行文件即可 配置。
    • 跨平台支持。支持Windows,Linux和Mac操作系统。
    • 静态构建应用程序。它在Golang顶部建造,因此它的燃烧速度快,记忆安全。因此,即使在基本的$ 2.5 fultr实例 pocketBase存储器的使用率约为Windows任务管理器中的12MB。
    • 易于集成。 PocketBSE正式提供JavaScript和Dart SDK,这有助于与Flutter移动应用程序和JavaScript框架集成,例如React和Vue。

快速开始使用PocketBase。

PocketBase很容易在几个步骤内开始。

步骤1:下载和unzip

您可以从pocketbase.io documentation page下载任何Linux,Windows,Mac平台的PocketBase。然后用您喜欢的拉链提取器解压缩下载的拉链。

步骤2:运行PocketBase

您可以使用任何控制台应用程序运行PocketBase。在未拉链文件夹中运行控制台应用程序并运行命令

./pocketbase serve

Windows

pocketbase.exe serve

这全都是运行Pocketbase后端。

控制台将打印出管理面板,静态服务器和REST API SERVER.

的路由

转到管理URL(通常是:http://localhost:8090/

首次访问管理面板时,您必须创建一个管理员帐户。您可以使用这些凭据打开管理帐户。

使用Pocketbase收藏。

您可以通过单击“集合”部分创建新集合来创建和管理数据库集合。

这将打开一个抽屉来定义您的数据库模式,在这里您可以在“字段”选项卡中添加字段,并在“ API规则”选项卡中的角色和权限中添加字段。设置字段和API规则后,您可以单击“创建”按钮来创建您的集合。您可以通过在Collection字段中创建文件字段上传文件,

每当您创建一个集合时,集合将在左角显示为按钮,通过单击可以添加,编辑,删除记录到集合的按钮。

管理用户。

为了创建用户和管理,您可以单击“用户”按钮。用户面板允许您创建,删除,编辑用户及其作为管理员和用户的角色。要创建一个用户,您必须提供用户电子邮件ID和密码,一旦创建了用户Pocketbase,将验证邮件发送到电子邮件ID到用户验证。

在PocketBase中,每个用户都有一个基本凭据模式,包括电子邮件ID和密码,以及可以自定义的配置文件模型。

使用Web API。

PocketBase正式支持DART和JavaScript SDK,这将有助于与移动应用程序和Web应用程序框架集成,例如Flutter,Vanilla JavaScript,React和Vue。本教程将重点关注JavaScript SDK。

步骤1
首先,您必须使用命令

安装PocketBase NPM软件包
npm i pocketbase

步骤2
安装完成后,您可以将其导入到前端代码中。并使用PocketBase类连接服务器。

import PocketBase from  'pocketbase';
const client =  new  PocketBase('http://127.0.0.1:8090');

步骤3
通过您的凭据进行身份验证,登录您将被允许在用户允许的情况下访问PocketBase。

const adminAuthData =  await client.admins.authViaEmail('test@example.com',  '123456');

PocketBase提供各种类型的身份验证方法,例如Google Auth和其他,请参阅官方文档以获取更多详细信息。

登录时,您可以访问收藏和所有其他服务。例如,您可以使用PocketBase.Records.GetList函数列出集合记录

const pageResult =  await client.records.getList('demo',  1, 50,  { filter:  'created >= "2022-01-01 00:00:00"',});

请参阅官方文档以获取更多详细信息

去生产

PocketBase是自主且易于部署的,不需要配置,不需要依赖项,因为它是完全便携式的,因此它只能通过上传和执行文件来部署。

此处显示的示例基于Linux服务器,
步骤1
首先,您必须允许命令中的PocketBase端口

[root@dev ~]$ ufw allow 80  && ufw allow 443

步骤2

然后通过命令

运行Pocketbase可执行文件
  [root@dev ~]$ ./pocketbase serve --http="yourdomain.com:80"  --https="yourdomain.com:443"

PocketBase Server将在YourDomain.com上运行

加入服务

而不是使用以前的方法,必须将PocketBase添加到服务中。通过添加服务,在您重新启动服务器后,服务器将处于活动状态。为了添加服务,您必须创建一个服务文件,即pocketbase.service并编辑文件如下所示。

[Unit]

Description = pocketbase



[Service]

Type = simple

User =  YOUR_USER

Group =  YOUR_GROUP

LimitNOFILE =  4096

Restart = always

RestartSec = 5s

StandardOutput = append:/your/path/to/logs/errors.log

StandardError = append:/your/path/to/logs/errors.log

ExecStart =  /your/path/to/pocketbase serve --http="yourdomain.com:80"  --https="yourdomain.com:443"



[Install]

WantedBy = multi-user.target

保存文件并运行命令

[root@dev ~]$ systemctl enable pocketbase.service

[root@dev ~]$ systemctl start pocketbase

这些命令将PocketBase添加到服务中,尽管您的服务器重新启动时,PocketBase将重新启动。

用Pocketbase服务静态文件

您可以使用PocketBase使用HTML,CSS等静态文件。

为了启用静态服务,您必须在PocketBase Base Directory中创建一个名为pb_public的文件夹,并将文件复制到pb_public。静态文件将在基本的Pocketbase URL(通常在http://localhost:8090/中)