
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
express-async-handler
Advanced tools
The express-async-handler package is a middleware for Express.js that simplifies error handling in asynchronous route handlers. It allows you to write asynchronous code without having to manually catch errors and pass them to the next middleware.
Simplified Async Error Handling
This feature allows you to wrap your asynchronous route handlers with the asyncHandler function. If an error occurs, it will automatically be passed to the next middleware, simplifying error handling.
const express = require('express');
const asyncHandler = require('express-async-handler');
const app = express();
app.get('/', asyncHandler(async (req, res, next) => {
const data = await someAsyncFunction();
res.send(data);
}));
app.use((err, req, res, next) => {
res.status(500).send({ error: err.message });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
Integration with Existing Middleware
This feature demonstrates how express-async-handler can be integrated with existing middleware like body parsers. It ensures that any errors in the asynchronous route handlers are properly caught and handled.
const express = require('express');
const asyncHandler = require('express-async-handler');
const app = express();
app.use(express.json());
app.post('/data', asyncHandler(async (req, res, next) => {
const data = await saveData(req.body);
res.status(201).send(data);
}));
app.use((err, req, res, next) => {
res.status(500).send({ error: err.message });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
async-express is another package that provides similar functionality by allowing you to use async/await in your Express route handlers. It automatically catches errors and passes them to the next middleware. Compared to express-async-handler, async-express offers a similar level of simplicity and ease of use.
express-promise-router is a drop-in replacement for Express's Router that allows you to use promises (including async/await) in your route handlers. It automatically handles rejected promises and passes errors to the next middleware. This package is more comprehensive as it replaces the entire Router, whereas express-async-handler is a middleware function.
Simple middleware for handling exceptions inside of async express routes.
npm install --save express-async-handler
yarn add express-async-handler
const asyncHandler = require('express-async-handler')
express.get('/', asyncHandler(async (req, res, next) => {
bar = await foo.findAll();
res.send(bar)
}))
FAQs
Express Error Handler for Async Functions
The npm package express-async-handler receives a total of 152,317 weekly downloads. As such, express-async-handler popularity was classified as popular.
We found that express-async-handler demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.