app-custom-error
v1.0.3
Published
Basic app custom error
Downloads
19
Readme
⚡ Custom Error Handler — BaseError & AppError
A lightweight and extensible custom error-handling utility for Node.js and Express applications.
It helps you create standardized, structured, and meaningful error objects with stack traces and prototype chaining.
📦 Installation
npm install app-custom-error💡 Features
- ✅ Extends the built-in JavaScript Error class
- ✅ Includes HTTP status codes
- ✅ Maintains proper stack trace
- ✅ Works with Express.js error middleware
- ✅ Easy to extend for custom error types (e.g., DatabaseError, AuthError, etc.)
🧠 Usage Guide
- 1️⃣ Import the Classes
const AppError = require("your-package-name");2️⃣ Example — Using Inside a Function
function errorCheck() {
try {
throw new AppError("Something went wrong!", 400);
} catch (error) {
console.log("Error caught:", error);
throw error; // Optionally rethrow for global handling
}
}
module.exports = errorCheck;
3️⃣ Example — Express.js Integration
const express = require("express");
const AppError = require("./errors/app.error");
const errorCheck = require("./app");
const app = express();
const PORT = 3000;
app.get("/", (req, res, next) => {
try {
throw new AppError("Unable to fetch data!", 404);
} catch (error) {
next(error);
}
});
// Global Error Handler
app.use((err, req, res, next) => {
res.status(err.statusCode || 500).json({
status: "error",
name: err.name,
message: err.message,
isOperational: err.isOperational,
});
});
app.listen(PORT, () => {
console.log(`✅ Server running at http://localhost:${PORT}`);
});
🧩 Class Reference
BaseError
The base class that extends JavaScript’s native Error.
Constructor:
new BaseError(name, message, statusCode = 500, isOperational = true);
## ✨ Author
- Krish Singh
-📍 IIIT Nagpur
- 🔗 [GitHub](https://github.com/Kakusingh120)
- 🔗 [LinkedIn](https://www.linkedin.com/in/krish-singh-9023b12a8)
- Would you like me to add the **package.json (npm-ready)** markdown section right below this — so your README shows installation, usage, and publish setup together in one file?