文档章节

loopback 文档翻译

jyj901111
 jyj901111
发布于 2016/09/16 06:11
字数 1339
阅读 41
收藏 0

第一部分 Loopback 核心概念

 

1 Model 模块

2 Application logic 应用逻辑

3 Data source and connector 数据资源以及连接这些资源的连接器

4 Loopback component  loopback 的一些小的子模块

5 Example 例子

 

Model 模块

模块 :loopback的核心

              可以表示一些后端的数据资源, 像数据库 以及一些后端的服务(例如支持REST SOAP 的一些后端的服务)在这里我们可以把整个的后端服务想象成一些一个个独立的模块,数据库,服务都可以成为独立的 小的模块。

 同时 loopback 本身你就可以把它看作是一个同时具有 NODE 和 RESTAPI 特性的模块。

Loopback一个关键的厉害的特性:当你定义一个模块, 这个模块生成时就已经带有提前定义好的REST API (带有create read update delete等操作)

基本的模块:

         自带有可以与其他模块联结的方法

          自带有验证数据的方法

其他的一些模块其实就是从基本模块继承而来的,这是模块的一个继承图。 当你用一个模块去链接一个像数据库一样的永久性的数据资源, 这个模块就会成为一个连接模块,这个连接模块有增删检查的一些操作。 Loopback build-in 模块就是继承这个连接模块而来的。

 

定制模块

你可以在你的application中定义你自己的模块, 你自己的模块也可以是通过扩展已有的内建模块,这样你自己的模块也可以拥有在内建模块中已经定义好的 User  Application 和其他的被这个内建模块所使用的内建模块。

你可以有许多种方式去构建你自己的模块,这取决于你想使用哪一种数据源去构建你的模块

三种方法:

1 Loopback自带的模块生成器

2 使用现有的关系型数据库 (用model discovery),然后通过使用一些loopback schema/ model synchronization API 去同步你的模块。

3 By instance introspection for free-form data in NoSQL databases or REST APIs. 不确定这个是怎么用的

https://docs.strongloop.com/download/attachments/9634357/Model%20inheritance.png?version=1&modificationDate=1456428606000&api=v2

这三种方法都会生成 Model definition JSON file 这个文件时用来在Loopback里定义你的模块的。Loopback规定这个文件在 common/models 文件夹中。

你也可以通过Loopback API 编程的方式创建你自己的模块, 或者手动编辑Model definition JSON file 这个文件。 大多数情况下,你不需要用这种方式去创建, 但是你需要用这种方式去修改和定制你自己的模块。

模块之中会有一些关系像是BelongsToHasMany, and HasAndBelongsToMany. 之后有机会再做详细介绍

 

 

模块的增删检查操作

当你生成一个用于连接数据块的模块的时候,这个模块就成为一个联结模块,联结模块本身具有增删检查的方法。这写方法是来自于一个叫PersistedModel 的类。

以上列出来的一些方法只是一些著名的例子,他还会提供一些类似功能的方法。具体的请参照 PersistedModel API documentation 

 

Application logic 应用逻辑

有以下几种方式你可以自己定制你需要的应用于你自己的application的逻辑。

1 把应用逻辑添加到model的remoteMethod 中 (你需要自己定制你的REST Api, 在remoteMethod)remoteMethod 会触发 remote hooks 模块中增删检查的方法也会触发 operation hooks

2 添加boot script 当你的application启动的时候就会被运行到

3 定义你想要定制的中间件  也是一种添加应用逻辑的方式

中间件阶段

中间件是什么

中间件指的是一些列被调用的 functions, 这些function的运行是在 http请求生成后直到REST API 被处理之前。 这个REST API 是你自己定义在你自己的模块remoteMethod 中。

Loopback是基于Express 所以loopback中的中间件类似于Express中的中间件的。但是在Loopback中,增加了phases阶段的概念,这个概念是为了清楚地定义中间件执行的顺序。阶段可以帮助我们避免那些出现在Express中的那些由顺序产生的问题。

Data sources and connector 数据源和连接器

Loopback 把一些后端服务像数据库,REST API, SOAP web service通用作 data source

在data source之后是connector ,connector才会直接与真正的数据库 和 后端的服务交流。Application 不会直接使用connector, 而是通过data source 或者是PersistedModel APIs,在解释一遍PersistedModel APIs 其实就是loopback提供用来和真正的数据库交互的一组API.

https://docs.strongloop.com/download/attachments/9634166/Data%20sources%20and%20connectors.png?version=1&modificationDate=1456428540000&api=v2

Loopback component( loopback中的一些小的模块)

主要是用来提供一些额外的附加功能

1推送功能   发送信息到移动app

2 存储服务 允许上传下载数据到云存储(Amazon, Rackspace, Openstack, and Azure)以及loopback的服务上。

3 第三方登录 Facebook, Google, Twitter, Github, or 任何支持 OAuth, OAuth 2, or OpenID 的第三方

4 同步 允许移动端离线操作,等到重新连接时再同步数据

5 OAuth 2.0  主要用于验证权限

© 著作权归作者所有

jyj901111
粉丝 0
博文 1
码字总数 1339
作品 0
美国
私信 提问
VScode 出现Cannot resolve path "compression" 这个错误怎么解决? 求大神指导

Error: Cannot resolve path "compression" at resolveAppPath (d:\11git\dd\node_modules\loopback-boot\lib\compiler.js:381:15) at resolveAppScriptPath (d:\11git\dd\node_modules\loop......

为知识而奋斗
2017/07/13
130
0
虚拟网卡和loopback的思想

在linux上卸载了loopback网卡设备之后,本地地址全部不通,这是不应该的吗?所有的本地网卡在配置ip地址的时候会调用fib_add_ifaddr函数: void fib_add_ifaddr(struct in_ifaddr *ifa) { ....

晨曦之光
2012/04/10
417
0
windows和linux的协议栈驱动

windows中没有将loopback当成一个网卡来实现,而是直接在比较高的层次解决了对127.0.0.0网段的访问,因此使用wiresharck是无法抓取这种loopback包的,pcap工作在非常低的层次,127.0.0.0网段...

晨曦之光
2012/04/10
263
0
loopback权限管理

请教一下,那位老师能告诉一下loopback权限管理这块,授权设置怎么设置的,一直在报,学要授权的错误,谢谢了 未处理请求 POST /api/Music/update?where=%7B%22id%22%3A111%7D 的错误:Error...

360码农
2017/03/15
126
0
LoopBack 2.39.0 发布,高度可扩展的 Node.js 框架

LoopBack 2.39.0 已发布,更新如下: 不再支持 Node.js 0.10 和 0.12 版本 test: 修复测试断言太严格的问题 为 empty password 添加单元测试 更新翻译字符串 Q2 2017 更多详情和下载地址可查...

王练
2017/10/24
641
0

没有更多内容

加载失败,请刷新页面

加载更多

“旧城改造”的背后——银泰新零售阿里云解决方案(上)

相关免费课程《银泰新零售上云解决方案精讲》上线中 立足实战 讲透经典案例 助你快速理解新零售 第一节学习地址 第二节学习地址 传统线下商业体上云的案例 与其说银泰上云,倒不如说银泰“旧...

阿里云官方博客
4分钟前
0
0
记一次升级Oracle驱动引发的死锁

问题描述 近期项目需要从虚拟机环境迁移到容器环境,其中有一个项目在迁移到容器环境之后的两天之内出现了2次“死锁(deadlock)”的问题,部分关键日志如下: Found one Java-level deadlock:...

ksfzhaohui
6分钟前
0
0
MySQL 中的 information_schema 数据库

欢迎查看原文 - 本博客仅记录 https://blog.csdn.net/kikajack/article/details/80065753 -- 是否开启bin_log日志: off为关闭-- show variables like 'log_%'; show variables like '......

莫库什勒
13分钟前
0
0
Random在高并发下的缺陷以及JUC对其的优化

Random可以说是每个开发都知道,而且都用的很6的类,如果你说,你没有用过Random,也不知道Random是什么鬼,那么你也不会来到这个技术类型的社区,也看不到我的博客了。但并不是每个人都知道...

编程SHA
18分钟前
0
0
T5大牛带你解析:如何实现分布式技术

1.分布式事务 2. 分布式锁 Java 原生 API 虽然有并发锁,但并没有提供分布式锁的能力,所以针对分布式场景中的锁需要解决的方案。 分布式锁的解决方案大致有以下几种: 基于数据库实现 基于缓...

李红欧巴
30分钟前
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部