环回介绍

Tavish Aggarwal.

N
ODEJS框架:Loopback是开源Node.js框架构建在Express框架之上。 IBM和强循环社区负责维护环回项目。请注意,这只是一个介绍性帖子,我将详细解释这里列出的每个功能。

特征

  1. 我们可以很快创建API
  2. 我们可以连接到多个数据源
  3. 基于角色的身份验证没有或最小代码
  4. 摇摇寄存到文档API

先决条件

一个人应该有一个基本的理解,以更好的方式了解这篇文章。

设置环境

创建环回应用程序的最简单方法是使用应用程序生成器(如yoman)。可以通过从头编码来创建环回应用程序,但是应用程序生成器执行所有“重升降”以创建标准项目布局的基本脚手架。然后,您可以使用CLI工具自定义应用程序以满足您的需求。要创建基本环回应用程序运行命令,如下所示:

$ npm install -g loopback-cli

您应该安装NodeJS和NPM预装以运行上面的命令。

Loopback的一个关键特征是当您定义模型时,它会自动使用完整的CRUD操作生成预定义的REST API。 

楷模

模型是环回的核心。 默认情况下,模型包含JSON和JS文件。因此,让我们讨论更多关于模型的更多信息,并查看我们可以在环回应用程序中创建的某些类型的模型。基本上,我们可以将模型分为三种类型。这些都是:

  1. 连接的模型
  2. 内置模型
  3. 自定义模型

连接的 模型

当我们将模型附加到持久性数据源时,它成为连接模型。我们可以在连接器的帮助下将模型连接到数据源。

内置模型

每个环回应用程序都有一组预定义的内置模型,如用户,角色和应用程序,因此您不必从头开始创建这些常见模型。

自定义模型

您可以定义特定于应用程序的自定义模型。使用命令

lb model

我们可以生成模型。

当我们生成模型时,它会自动创建默认唯一字段,为“id”,如果模型连接到持久性数据源此ID被称为主键。

模型关系

您可以在型号之间表达关系,例如浮标,Hasmy和Hasandbelongstomany。我们可以使用“LB关系”创建模型之间的关系。我将在后面的帖子中讨论更多信息。

应用程序逻辑

您可以通过多种方式添加自定义应用程序逻辑:

  1. 将逻辑添加到模型JavaScript文件
  2. 通过创建JS文件将逻辑添加到引导文件夹
  3. 定义自定义中间件,如Express应用程序

您可以在将代码添加到验证数据之前,在将数据保存到模型和后端数据存储之前。

环回中的中间件

Loopback中的中间件类似于表达,但它克服了我们在Express中执行的执行顺序的问题。它增加了阶段的概念来克服这个问题。

环回组件

环回组件提供额外的“插件”功能。环回支持的一些组件如下所列:

  1. 推送通知  - 使信息能够将信息发送到移动应用程序,以便在移动设备上的“徽章”警报或弹出消息中立即显示。
  2. 存储组件  - 启用云存储提供程序(Amazon,Rackspace,OpenStack和Azure)以及服务器文件系统上传和从云存储提供程序上传和下载文件。
  3. 第三方登录  - 通过Facebook,Google,Twitter,Github或支持OAuth,OAuth 2或OpenID的任何系统使用来自Facebook,Google,Twitter,Github或任何系统的第三方凭据,实现用户登录(和帐户链接)。
  4. 同步  - 使移动应用程序能够脱机操作,然后在重新连接时将数据与服务器应用程序同步。
  5. OAuth 2.0  - 使Loopback应用程序能够用作OAuth 2.0提供程序来验证和授权客户端应用程序和用户访问受保护的API端点。

路由

由于环回基于Express构建的,因此Loopback中的路由与Express的路由类似。虽然,Loopback路由取决于环回中间件链。在中间件阶段期间加载的中间件配置在“应用程序”的“中间件”。

定义访问控制

访问控制通常让我们控制模型的可访问性。使用访问控制我们实际上可以限制我们的模型API。例如:如果我们希望最终用户无法创建新用户,我们可以为其定义访问控制。我们可以使用命令定义访问控制:

lb acl

介绍遥控钩子

远程钩子只是一个在远程方法之前或之后执行的函数(自定义远程方法或内置CRUD方法)。

您可以定义两种远程挂钩:

  • BeForeMote()在远程方法之前运行。

  • 后续方法()在远程方法后运行。

两个远程方法都采用两个函数参数:方法名称和回调函数。

例如:

模型test.beforeRemote('create', function() { })

介绍AngularJS SDK

Loopback提供AngularJS JavaScript SDK,以便于为环回API服务器端应用程序创建AngularJS客户端。要为环回应用程序生成角度服务,请使用AngularJS SDK LB-NG命令行工具。

$ npm install -g loopback-sdk-angular-cli

Loopback Bootstrappt

Loopback将始终加载以下配置文件,如果存在:

  • 服务器/ config.json。

  • server / config.local.json或server / config.local.js。 

  • server / datasources.json.

  • server / datasources.local.json或server / datasources.local.js

  • 服务器/ model-config.json

  • server / model-config.local.json或server / model-config.local.js

  • 服务器/中间件.JSON.

  • 服务器/中间件.local.json或server / middleware.local.js

  • Server / Component-config.json

  • server / component-config.local.json或server / component-config.local.js

我们也可以在JS文件中编写我们的配置,如果无法在JSON文件中编写。但请确保JSON文件应置于正确的位置。

此外,当设置node_env环境变量时,Loopback将从以下方式加载配置:

  • server / config.env.json / js

  • server / datasources.env.json / js

  • 服务器/ model-config.env.json / js

  • 服务器/中间件.ENV.JSON / JS

  • server / component-config.env.json / js

环回应用程序可以加载多个配置文件,这可能会彼此冲突。具有最优先级的文件设置的值将始终生效。优先事项是:

  1. 特定于环境的配置,基于node_env的值;例如,服务器/ config.staging.json。

  2. 本地配置文件;例如,服务器/ config.local.json。

  3. 默认配置文件;例如,服务器/ config.json。

我将在即将到来的帖子中分享更多有关环回的信息。如果您在下面的起薪部分有任何疑问,请告诉我。

作者信息

Tavish Aggarwal.

网站: http://tavishaggarwal.com

Tavish Aggarwal.是一个数据科学家 在一个海德拉巴工作,具有广泛的经验,在跨电子商务,财务,医疗保健等等不同领域解决现实世界的业务问题。 他对技术充满热情,喜欢在团队中工作。

类别