0

falcon.before次のようなフックを追加しようとしています。

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

4

1 に答える 1

0

レスポンダーの非同期署名 ( async def) からon_get、フレームワークの ASGI フレーバーを使用していると思われます。その場合、レスポンダーだけでなく、ミドルウェア メソッド、フック、シンク、エラー ハンドラー関数も待機可能なコルーチン関数である必要があります。

フレームワークの同期フレーバーと非同期フレーバーの両方でフックが適用される、この「より複雑な例」の WSGI バージョンと ASGI バージョンを比較対照してください。falcon.before

TL;DR フックを に変更する必要がありますasync def check_authenticated(...)

于 2021-03-22T18:07:09.407 に答える