loopback4入坑记录(二)-跑起官网TodoList教程

前言:

  1. 这一步会学习用到关系(relation),一对多(has many)关系,属于(belong to)关系
  2. 还是基于 《loopback4入坑记录(二)**》中创建的基本项目之上
  3. 由于当时vs的terminal拉的比较小,横向部分有的内容缺失(项目名称输入的命令),但是不影响
  4. 项目目录为appnew ,它在app就截没了。以至于后面 lb4 xxx命令未显示,请注意
  5. 每一项选的内容可以从截图中看到

第1步:添加TodoList模型 (model)

lb4 model

在这里插入图片描述

第2步:添加TodoList存储库 (repository)

lb4 repository

在这里插入图片描述
补充:
图中文件,增加图中方法
在这里插入图片描述

第3步:添加TodoList与Todo的关系 (relation)

因为关系对应着两个model所以要来两次

3.1 添加HasMany关系
lb4 relation

在这里插入图片描述

3.2添加belongsTo关系
lb4 relation

在这里插入图片描述

3.3更新db.json中的数据
{
  "ids": {
    "Todo": 5,
    "TodoList": 3
  },
  "models": {
    "Todo": {
      "1": "{\"title\":\"Take over the galaxy\",\"desc\":\"MWAHAHAHAHAHAHAHAHAHAHAHAHAMWAHAHAHAHAHAHAHAHAHAHAHAHA\",\"todoListId\":1,\"id\":1}",
      "2": "{\"title\":\"destroy alderaan\",\"desc\":\"Make sure there are no survivors left!\",\"todoListId\":1,\"id\":2}",
      "3": "{\"title\":\"play space invaders\",\"desc\":\"Become the very best!\",\"todoListId\":2,\"id\":3}",
      "4": "{\"title\":\"crush rebel scum\",\"desc\":\"Every.Last.One.\",\"todoListId\":1,\"id\":4}"
    },
    "TodoList": {
      "1": "{\"title\":\"Sith lord's check list\",\"color\":\"blue\",\"id\":1}",
      "2": "{\"title\":\"My daily chores\",\"color\":\"red\",\"id\":2}"
    }
  }
}

在这里插入图片描述

3.4 改动两个xxx.model文件
3.4.1 src/models/todo.model.ts

在这里插入图片描述

3.4.1 src/model/todo-list.model.ts

在这里插入图片描述

第4步:添加TodoList控制器 (controller)

4.1 命令添加

lb4 controller

在这里插入图片描述

4.2 改动文件

4.2.1 src/controllers/todo-list.controller.ts
该文件第1处
在这里插入图片描述
该文件第2处
在这里插入图片描述

4.2.2 src/controllers/todo.controller.ts

注意这里面不仅仅改动了@getxxxx ,还改动了find方法为findTodos方法

该文件第1处
在这里插入图片描述
该文件第2处
在这里插入图片描述
4.2.3 优化文件
todo-todo-list.controller.ts中一个方法,移入到todo.controller.ts中,并删除todo-todo-list.controller.ts,

在这里插入图片描述
todo.controller.ts移入后,第204会飘红,因为没有TodoList这个泛型,需要在顶部导入
在这里插入图片描述
导入TodoList
在这里插入图片描述

第5步:重启服务并测试

运行正常
在这里插入图片描述
测试如下,使用postman工具
在这里插入图片描述
db.json中的结果(其他的内容,是之前测试的,无关紧要)
在这里插入图片描述


补充-添加 TodoListImage 模型及relation

这是一个hasOne关系

1.创建TodoListImage模型

lb4 model

在这里插入图片描述

2.创建TodoListImage存储库

lb4 repository

在这里插入图片描述

3.创建TodoListImage控制器

lb4 controller

在这里插入图片描述

4.创建TodoListImage关系

4.1 hasOne
lb4 relation

在这里插入图片描述

4.2 belongsTo
lb4 relation

在这里插入图片描述

5.优化文件

5.1 复制todo-list-image-todo-list.controller.ts 中的方法
在这里插入图片描述
到 todo-list-image.controller.ts中
在这里插入图片描述
并在todo-list-image.controller.ts 导入TodoList
在这里插入图片描述


总结

  1. lb4直接使用lb4 relation 就能建立两个model之间的关系,但是需要两次,并且指定source model,和 target model。

  2. @注解用法不一定是固定的, @get(’/todos’)==》 @get(’/todos’, { responses: { }}) 也是可行的

  3. model 不仅能通过@property来声明属性,还可以用@belongsTo @hasMany来声明关系,并指明与之关联的model
    在这里插入图片描述在这里插入图片描述

  4. 还需要删除 src/controller/index.ts中框选部分,因为这两个文件已经被删除,不然后期会出现报错提示
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值