1.0.5 • Published 3 years ago
@valbo/async-middleware v1.0.5
@valbo/async-middleware
Use async middlewares with express.
Install
npm install @valbo/async-middleware
Usage
Exports wrappers that allows you to use async functions as express middlewares. If the wrapped middlewares throw, the error will be catched and passed to next().
import express, { Request, Response, NextFunction } from 'express';
import { asyncMiddleware, asyncErrorMiddleware, AsyncRequestHandler, AsyncErrorRequestHandler } from '@valbo/async-middleware';
const getUser: AsyncRequestHandler = async (request: Request, response: Response, next: NextFunction): Promise<void> => {
response.locals.user = await database.getUser();
next();
};
const errorHandler: AsyncErrorRequestHandler = async (error: any, request: Request, response: Response, next: NextFunction): Promise<void> => {
if (error.report) {
await remoteAlerts.report(error);
}
response.status(error.status);
response.json({ error: { status: error.status, name: error.name, message: error.message } });
};
const app = express();
app.use(asyncMiddleware(getUser));
app.use(asyncErrorMiddleware(errorHandler));