Closed
Description
I noticed a strange behaviour when playing around with middlewares, when I add my middleware to the app as a template argument it works as expected, however, when I add the same middleware as a constructor argument, neither before_handle
and after_handle
are executed.
I added a log to the after_handle
function:
void after_handle(crow::request& req, crow::response& res, context& ctx) {
CROW_LOG_ERROR << "wtf?!";
// ...
}
Compiling and running the following:
crow::App<MyMiddleware> app;
MyMiddleware& middleware = app.get_middleware<MyMiddleware>();
// configure middleware
// define routes
app.bindaddr("127.0.0.1").port(8080).run();
Sending a single request prints "wtf?!" as expected:
However, if I compile and run the following:
MyMiddleware middleware;
// configure middleware
crow::App<> app(middleware);
// define routes
app.bindaddr("127.0.0.1").port(8080).run();
And send a single request, I don't get the "wtf?!" message:
The reference docs Say about the constructor "Construct Crow with a subset of middleware.", what does that mean exactly? Can this be mentioned in the Middleware guide?
Metadata
Metadata
Assignees
Labels
No labels