loopback Route 简介

Loopback 文档翻译第二部分

Routing 路由

1 概览

2 Express 路由总结

3 loopback 路由

        Loopback中间件链

       加载 中间件

概览

Loopback是建造在express之上的,同时它也实现了express的路由系统。然而基本的express路由系统只是loopback功能上个一小部分。Loopback中大部分的功能是延伸了路由系统得来的。理解这个系统可以帮助你更好的理解loopback同时可以更好地开发loopbackapp。

Express路由系统的总结

对于那些不了解express路由系统的朋友,以下是一些重点的内容:

1 路由是指一些server用来获取请求的规则。路由也是一系列中间件函数,这些中间件函数也正是请求会经过,会被处理的地方。

2 一个中间件只接受三个参数 request, response, 以及在中间件链上,下一个要到达的中间件。(中间件其实是一个个的模块,把中间件链想成一个串联这些模块的链表,那么下一个要到达的中间件就是链表中每个节点保存的指向下一个节点的指针)。

3 你加载中间件的方式可以是使用app.use()或者把这个中间件分配成Route definition里的callbackfunction

4 一些中间件可以被整合成一个路由去处理请求,这些整合在一起的中间件形成了一个中间件链,请求会经过这个链上的每一个中间件,除非有一些中间件终止了这个请求的传播(例如遇到错误返回,请求就不会在到达后面中间件了)

5 链上的任何一个中间件都可以返回response 来终止这个中间件的传递。

6 一个中间件可以调用response的一些方法把response发送回到请求的地方,也可以调用next()把请求传递下去。

7 如果一个中间件发送给服务器response,规定上这个请求就不会再继续传递下去。 在这种情况下任何在调用next传递request的情况都是错误的

8 一个中间价函数也可以接受四个参数,只有在这个中间是一个专门用来处理错误的中间件的情况下。第四个参数是错误信息

更多的细节参照express的路由系统

Loopback的路由

Loopback还是实现的请求路由的中间件模式,所以中间件和路由的概念与express是一致的。Express路由系统已经被包含在loopback的中间件链里了。

Loopback 中间件链

1.   initial:before

2.   initial

3.   initial:after

4.   session:before

5.   session

6.   session:after

7.   auth:before

8.   auth

9.   auth:after

10. parse:before

11. parse

12. parse:after

13. routes:before

14. Expressmiddleware

15. Components

16. Boot scripts

17. routes

18. routes:after

19. files:before

20. files

21. files:after

22. final:before

23. final

24. final:after

在这个链中越早被加载的中间件可以越早的处理请求,如果在前面的中间件中返回了response 或者没有成功调用next(),请求会被结束在这个中间件不会继续传递

从上面的list中可以看到,loopback会控制中间件加载的顺序,优先与这个中间件相关的其他中间件超过那些已经使用app.use(),bootscript加载过的中间件。

如果你在一个路由以及路由after阶段添加一个中间件。在这个route已经整合好了以后这个中间件不会被执行。

middleware.json file中配置某个中间件阶段,这个中间件就会被加载。每个阶段的顺序在文件里已经被语义上定义好了,不能够被随机罗列。Loopback也支持你自己定制的阶段。定制的阶段可以被放在中间件链的任何位置,也可以优先于loopback内建的中间件。

Loopback中间件

Loopback中间件使用middleware.json文件,使用app.middleware()方法。

express中间件可以在server.js文件中加载使用app.use()或路由定义加载。

loopback组件可以使用引用loopback应用程序实例加载中间件。

bootscript可以使用参考到Loopback应用程序实例加载中间件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值