它是干嘛的(概念)

”LoopBack是 屡获殊荣的,高度可扩展的,基于Express的开源Node.js和TypeScript框架。它使您能够快速创建由后端系统(例如数据库和SOAP或REST服务)组成的API和微服务。“

-------------------------------来自经过谷歌翻译的官网原文

在这里插入图片描述
官网-框架概念

常用关键构建块

目前经历的都是在命令行里敲的
在这里插入图片描述

官网-关键构建块概念


正文1-helloword

1. 安装LoopBack 4 CLI

npm i -g @loopback/cli

2. 创建一个新项目

lb4 appnew

感觉除了项目名称外,可以一路回车了。
在这里插入图片描述
3. 进入项目并运行

cd appnew
npm start

在这里插入图片描述

4. 浏览器访问地址

http://127.0.0.1:3000/ping

在这里插入图片描述


正文2-跑起官网todo教程

还是基于上文中已经创建好的helloword项目

1. 建立todo 模型 (model)

lb4 model

相关的属性名称,属性类型选项,具体可以看图,也可以看官网的步骤。
在这里插入图片描述
2. 添加数据源 (datasource)

lb4 datasource

在这里插入图片描述
因为使用了本地数据文件,所以需要在项目根目录下创建 /data/db.json文件
在这里插入图片描述
db.json文件内容

{
  "ids": {
    "Todo": 5
  },
  "models": {
    "Todo": {
      "1": "{\"title\":\"Take over the galaxy\",\"desc\":\"MWAHAHAHAHAHAHAHAHAHAHAHAHAMWAHAHAHAHAHAHAHAHAHAHAHAHA\",\"id\":1}",
      "2": "{\"title\":\"destroy alderaan\",\"desc\":\"Make sure there are no survivors left!\",\"id\":2}",
      "3": "{\"title\":\"play space invaders\",\"desc\":\"Become the very best!\",\"id\":3}",
      "4": "{\"title\":\"crush rebel scum\",\"desc\":\"Every.Last.One.\",\"id\":4}"
    }
  }
}

3. 添加存储库 (repository)

lb4 repository

在这里插入图片描述
4. 添加控制器 (controller)

lb4 controller

在这里插入图片描述
5. 运行并查看
(感慨)这种靠命令生成的文件,确实让bug出现概率小很多。

npm start

访问 http://localhost:3000/
在这里插入图片描述
6. 测试效果
点击 explorer 然后测试是否正常
在这里插入图片描述

结果
在这里插入图片描述
文件中第一条也是这个
在这里插入图片描述
其他请求方式就不11尝试了。


总结

1. lb4框架,目前觉得它没有热重载机制。(代码改动,并不能事实更新,需要停止运行重新 npm start
2. 用到的关键构建块

1. model:
用来定义数据模型,模型中字段的名称、数据类型等。
在这里插入图片描述
2. datasource:
主要配置外部数据的连接信息,(如果mysql 之类的话还要配置 host ,port,username,password 之类的)
在这里插入图片描述
3. repository:
官网解释 ”一种服务类型,表示数据源内的数据集合。“
查看源码后,我对他的理解,是用来执行crud的一个实例对象
在这里插入图片描述
底层源码
在这里插入图片描述
其实在控制器里也可佐证,控制器通过路由地址,调用todoRepository实例的不同方法。
在这里插入图片描述
4. controller:
官网:”实现由应用程序的REST API定义的操作的类。它实现了应用程序的业务逻辑,并充当HTTP / REST API和域/数据库模型之间的桥梁。控制器仅对后端服务/数据库的处理后输入和抽象进行操作。“

我的理解:对不同的请求地址,执行相应的方法(处理数据并返回数据)

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐