[Express] Handle Syncronous and Asyncronous Errors in Express
When express App run syncronous code:
app.get("/test", (req, res) => { throw new Error("Oh no! The world has ended!"); });
Those code works fine.
But when run Asyncronous code:
app.get("/test", async (req, res) => { throw new Error("Oh no! The world has ended!"); });
It has problem.
1. Using 'next':
app.get("/test", async (req, res, next) => { next(throw new Error("Oh no! The world has ended!")); });
2. Using try/catch:
app.get("/test", async (req, res) => { try { throw new Error("Oh no! The world has ended!"); } catch(error) { next(error) } });
3. Library: express-async-errors
const express = require("express"); const app = express(); require("express-async-errors"); app.get("/test", async (req, res) => { throw new Error("Oh no! The world has ended!"); });
4. Custom middleware:
const { errorHandling } = require("./utils/error"); app.get("/test", async (req, res) => { throw new Error("Oh no! The world has ended!"); }); app.use(errorHandling); // keep it as last step app.listen(3001, function () { console.log("Server started."); });
function errorHandling(error, req, res, next) { if (res.headersSent) { next(error); } else { res.status(500); res.json({ message: error.message, ...(process.env.NODE_ENV === "production" ? null : { stack: error.stack }), }); } } module.exports = { errorHandling };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2019-07-27 [RxJava] Mapping
2018-07-27 [JavaEE] JTA, Java Transaction API, Repository for DB opreations
2017-07-27 [Angular] Two ways to create Angular Animation, using animation() or using state()
2016-07-27 [GIF] Shape Objects in GIF Loop Coder