Home / Function/ createMiddleware() — astro Function Reference

createMiddleware() — astro Function Reference

Architecture documentation for the createMiddleware() function in middleware.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  63b70b5f_82ce_e31a_e49a_ed6696124503["createMiddleware()"]
  f7144460_0a42_f3e4_9276_46af39d36dba["middleware.ts"]
  63b70b5f_82ce_e31a_e49a_ed6696124503 -->|defined in| f7144460_0a42_f3e4_9276_46af39d36dba
  style 63b70b5f_82ce_e31a_e49a_ed6696124503 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/integrations/node/src/middleware.ts lines 13–41

export default function createMiddleware(app: NodeApp, options: Options): RequestHandler {
	const handler = createAppHandler(app, options);
	const logger = app.getAdapterLogger();
	// using spread args because express trips up if the function's
	// stringified body includes req, res, next, locals directly
	return async (...args) => {
		// assume normal invocation at first
		const [req, res, next, locals] = args;
		// short circuit if it is an error invocation
		if (req instanceof Error) {
			const error = req;
			if (next) {
				return next(error);
			} else {
				throw error;
			}
		}
		try {
			await handler(req, res, next, locals);
		} catch (err) {
			logger.error(`Could not render ${req.url}`);
			console.error(err);
			if (!res.headersSent) {
				res.writeHead(500, `Server error`);
				res.end();
			}
		}
	};
}

Domain

Subdomains

Frequently Asked Questions

What does createMiddleware() do?
createMiddleware() is a function in the astro codebase, defined in packages/integrations/node/src/middleware.ts.
Where is createMiddleware() defined?
createMiddleware() is defined in packages/integrations/node/src/middleware.ts at line 13.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free