问题描述
def check_authenticated(request,response,resource,params):
print(request.headers)
request.context.test = 'test'
@falcon.before(check_authenticated)
class testing(object):
async def on_get(self,request,response):
print(request.headers)
print('made it here')
但我一直面临错误:TypeError: object nonetype can't be used in 'await' expression
解决方法
根据您的 async def
响应者的异步签名 (on_get
),我假设您使用的是框架的 ASGI 风格。
在这种情况下,不仅您的响应者,而且中间件方法、钩子、接收器、错误处理函数都必须是可等待的协程函数。
比较和对比此 "more complex example" 的 WSGI 和 ASGI 版本,其中在框架的同步和异步风格中应用了钩子和 falcon.before
。
TL;DR 您需要将钩子更改为 async def check_authenticated(...)
。