当hooks可以实现同样的功能时,feathersjs中express中间件的作用是什么?

问题描述 投票:0回答:1

feathers generate app 命令中我们有一个文件夹叫middleware,是用来给服务添加任何中间件功能的,然而hooks也可以实现同样的功能,为什么要提供中间件呢?我是不是遗漏了什么?

feathersjs
1个回答
3
投票

你说的没错,钩子几乎可以做到任何Express中间件能做到的事情。不同的是,它们是 独立运输. 这意味着无论你是否在内部使用服务,通过websocket(Socket.io)、HTTP(Express)或任何其他类型的连接,钩子都会工作。关于这种独立于传输的设计的好处,我写了更多的文章在 现代网络API的设计模式.

Feathers与Express完全兼容,这意味着正常的中间件仍然可以为你所用,但大多数Feathers应用程序只有很少的中间件或通常根本没有中间件。为什么你仍然会使用Express中间件(在使用Socket.io连接时不会运行),原因是将HTTP请求和响应中特定的东西从和转换。这样一来,服务和钩子就可以用一种不需要知道这些信息来自哪里的方式来处理它。以下是一些例子

对于其他任何东西,你可以而且应该使用钩子。这样你的应用程序就可以保持未来的可靠性,当你转移到不同的传输机制时,你就不必改变任何东西。

© www.soinside.com 2019 - 2024. All rights reserved.