Skip to the content.

Middleware

A Middleware is a small piece of code that is used to alter web application request/response cycle, middleware function has access of request, response object and next middleware function in request/response cycle. Middlewares are the building block of unic framework.

Middleware functions can be used to perform following tasks:

If the current middleware function does not end the request/response cycle, it must call next() to pass control to the next middleware function.

Types of middlewares in unic framework:

Global Middleware

Let’s create a global middleware.

$app->use(function($req, $res, $next) {
    $req->counter = 0;
    // Call next middleware
    $next();
});

$app->use(function($req, $res, $next) {
    $req->counter++;
    $next();
});

Route Middleware

Let’s create a route middleware.

$app->get('/', function($req, $res, $next) {
    $req->counter = 0;
    // Calls next middleware
    $next();
}, function($req, $res) {
    $res->send("Counter is {$req->counter}");
});

Error-handling Middleware

Error-handling middleware always takes four arguments. You must provide four arguments to identify it as an error-handling middleware function.

Let’s create a error-handling middleware.

$app->use(function($err, $req, $res, $next) {
    $res->send('Internal Server Error', 500);
});

Unic framework automatically catche error and call error-handling middlewares, but you can manually call error-handling middleware. If we pass error as an argument in $next() function, it will skip all middlewares and only calls error-handling middlewares.

$app->get('/', function($req, $res) {
    $next('error');
});

$app->use(function($err, $req, $res, $next) {
    $res->send('Internal Server Error', 500);
});