Middleware System

Novaxjs2 provides a flexible middleware system for request processing.

Standard Middleware

app.useMiddleware((req, res, next) => {
  console.log(`Request: ${req.method} ${req.url}`);
  next(); // Call next middleware
});

Error Middleware

app.useErrorMiddleware((err, req, res, next) => {
  console.error('Error:', err);
  res.status(500).end('Internal Server Error');
});

Built-in Middleware

// Static file serving
app.serveStatic('public');

// JSON body parsing (automatic)
// Form data parsing (automatic)
// File upload parsing (automatic)

Route-Specific Middleware

Novaxjs2 supports adding middleware to specific routes:

Adding Middleware to Routes

// Middleware function
function logRequest(req, res, next) {
  console.log(`Request: ${req.method} ${req.url}`);
  next();
}

// Route with middleware
app.get('/protected', logRequest, (req, res) => {
  return 'This route is protected by middleware';
});

Multiple Middleware

function auth(req, res, next) {
  if (req.headers.authorization) {
    next();
  } else {
    res.status(401).end('Unauthorized');
  }
}

app.get('/admin', 
  logRequest, 
  auth,
  (req, res) => {
    return 'Admin dashboard';
  }
);