loopback4入坑记录(一)-运行helloword+跑起官网todo教程

它是干嘛的(概念)

”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和域/数据库模型之间的桥梁。控制器仅对后端服务/数据库的处理后输入和抽象进行操作。“

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

根据您提供的引用内容,我理解您想了解关于SW1、SW2、RT1、RT2、AC1以及PIM-SM、IGMPv3的一些信息。SW1和SW2是交换机,RT1和RT2是路由器,AC1是接入控制器。PIM-SM是一种组播协议,用于在IP网络中进行组播通信。IGMPv3是Internet组管理协议的第三个版本,用于主机和路由器之间的组播通信。 关于SW1、SW2、RT1、RT2、AC1+运行+PIM-SM,RT1+loopback1+为+c-bsr+和+crp,RT2+运行+IGMPv3的详细信息,我无法直接从提供的引用内容中获取到。但是,我可以为您提供一些关于PIM-SM和IGMPv3的基本知识和示例代码。 PIM-SM(Protocol Independent Multicast-Sparse Mode)是一种组播协议,用于在IP网络中进行组播通信。它使用了两种类型的路由器:边界路由器(BSR)和组播源路由器(RP)。BSR负责维护组播组和RP的映射关系,而RP负责接收和转发组播数据。以下是一个使用PIM-SM的示例代码: ```python # 配置RT1的loopback1为c-bsr和crp RT1(config)# interface loopback1 RT1(config-if)# ip pim sparse-mode RT1(config-if)# ip pim bsr-candidate RT1(config-if)# ip pim rp-candidate # 配置RT2运行IGMPv3 RT2(config)# interface <接口名称> RT2(config-if)# ip igmp version 3 ``` IGMPv3(Internet Group Management Protocol version 3)是一种用于主机和路由器之间的组播通信的协议。它允许主机加入和离开组播组,并向路由器发送组播组成员的报告。以下是一个使用IGMPv3的示例代码: ```python # 配置主机加入组播组 import socket import struct MCAST_GRP = '224.1.1.1' MCAST_PORT = 5007 # 创建UDP套接字 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) # 设置套接字选项 sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2) # 加入组播组sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY)) # 接收组播数据 while True: data, addr = sock.recvfrom(1024) print("Received multicast message:", data.decode()) ``` 希望以上信息对您有所帮助。如果您有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值