Lesson 25/100

Tutorials Node.js Tutorial

Error Handling — Complete Guide

Error Handling — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of Node.js Tutorial on Toolliyo Academy.

On this page
Error Handling
Lesson 25 of 100 · Module 3: Express.js & EJS · INTERMEDIATE
Topic: Error Handling · Level: INTERMEDIATE · Read time: ~15 min + hands-on

Error Handling

This lesson covers Error Handling. Think of this lesson as a short workshop you can run on your laptop.

What you will learn

  • What error handling means — in normal words, not textbook words
  • How it works step by step
  • Code you can run today on your laptop
  • Where teams use this in real projects

Before you start

Explain it simply

Errors in async routes must reach an error handler — use try/catch and next(err), or an async wrapper.

Think of it like this: Express is like a reception desk: every visitor (HTTP request) is checked, directed to the right room (route), and sent back with an answer (response).

Why developers use this

  • Core skill for web backends
  • Huge community and docs
  • Leads to REST and auth

How it works (step by step)

  1. A browser or app sends an HTTP request to your server.
  2. Express middleware runs in order (log, parse JSON, check auth).
  3. The route handler for Error Handling runs your logic.
  4. You send JSON or HTML back with the right status code (200, 201, 404, 500).

Code example — type this yourself

app.get('/api/user/:id', async (req, res, next) => {
  try {
    const user = await findUser(req.params.id);
    if (!user) return res.status(404).json({ error: 'Not found' });
    res.json(user);
  } catch (err) {
    next(err);
  }
});

Never send two responses for one request. return after res.json to stop the function.

What each part does

  • app.get('/api/user/:id', async (req, res, next) => { — Defines what happens when a client hits this URL and HTTP method.
  • try { — Catches errors so one failure does not crash the whole server.
  • const user = await findUser(req.params.id); — Async work — Node can serve other users while this waits.
  • if (!user) return res.status(404).json({ error: 'Not found' }); — Line 4: runs as written.
  • res.json(user); — Sends the response back to the client.
  • } catch (err) { — Catches errors so one failure does not crash the whole server.
  • next(err); — Line 7: runs as written.
  • } — Line 8: runs as written.

Real life: where Error Handling shows up

A college admin panel uses Error Handling with Express: students hit /courses, teachers hit /grades, and shared middleware checks login once for every page.

Try it yourself — hands-on

  1. Create a new file (e.g. error-handling-demo.js) in an empty folder
  2. Type the example code for Error Handling yourself — typing helps memory
  3. Run node on that file and read the output
  4. Change one line (a value, a message, a route path) and run again to see what breaks or improves
Tip: After this lesson, close your editor and explain Error Handling in one sentence without looking.

Common mistakes (avoid these)

  • Skipping the terminal — Error Handling only feels easy after you run code yourself.
Pro tip (intermediate): In team projects, document how your team uses Error Handling in the README so new developers onboard faster.

Interview note

Be ready to explain Error Handling with a real trade-off: what problem it solves and what you would not use it for.

Summary

  • You can explain Error Handling in your own words
  • You ran working code — not just read about it
  • You know one mistake to avoid and one real place teams use this

Continue learning

Previous: Request Lifecycle — Complete Guide

Next: EJS Basics — Complete Guide

Lesson 25 of 100 · Node.js Tutorial

Questions on this lesson 0

Sign in to ask a question or upvote helpful answers.

No questions yet — be the first to ask!

Node.js Tutorial
Course syllabus

Node.js Tutorial

Module 1: Node.js Foundations
Module 2: Async Programming
Module 3: Express.js & EJS
Module 4: REST APIs & Databases
Module 5: Real-Time & Event Systems
Module 6: Advanced Node.js
Module 7: Performance & Security
Module 8: Testing & Deployment
Module 9: Latest Node.js Features
Module 10: Enterprise Projects
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details