目录
执行上下文
Nest提供了几个实用类,帮助轻松编写可以跨多个应用程序上下文 (例如,基于Nest HTTP服务器、微 服务和WebSockets应用程序上下文)运行的应用程序。 这些实用程序提供有关当前执行上下文的信息,可用于构建通用的守卫、过滤器和拦截器, 可以在广泛的控制器、方法和执行上下文中工作。
在本章中,我们涵盖了两个这样的类:ArgumentsHost
和ExecutionContext
。
ArgumentsHost类
ArgumentsHost
类提供了检索传递给处理程序的参数的方法。
它允许选择适当的上下文(例如,HTTP、RPC(微服务)或WebSockets)来从中检索参数。
框架在需要访问ArgumentsHost
实例的地方通常提供ArgumentsHost
实例,通常被引用为host
参数。
例如,异常过滤器的catch()
方法就是使用ArgumentsHost
实例调用的。
ArgumentsHost
简单地充当处理程序参数的抽象。
例如,对于HTTP服务器应用程序(当使用@nestjs/platform-express
时),
host
对象封装了Express的[request、response、next]
数组,其中request
是请求对象,
response
是响应对象,而next
是一个控制应用程序请求-响应循环的函数。
另一方面,对于GraphQL应用程序,host
对象包含[root、args、context、info]
数组。