Functional Design Patterns for Express.js (PragProg)

Express is arguably the ubiquitous library for building Node backends. As of mid-2019, it is a dependency of 3.75 million codebases on Github alone. So if you hop into a Node codebase, chances are Express is part of it.

Jonathan Lee Martin @nybblr

This work was written and produced entirely by the author. The Pragmatic Bookshelf is proud to be distributing it.

Express is arguably the ubiquitous library for building Node backends. As of mid-2019, it is a dependency of 3.75 million codebases on Github alone. So if you hop into a Node codebase, chances are Express is part of it.

Starting from an empty directory, we’ll build a full-featured Express backend together and intentionally bump into codebase growing pains to motivate functional design patterns and Express features. With this book, you’ll:

  • Learn Express.js by building a pure backend with authentication from scratch.
  • Apply best practices to architect resilient, testable Node.js backends.
  • Expand your design palate with functional design patterns that transfer to any tech stack.
  • Demystify key web abstractions by deriving each layer yourself, then abstracting it away.

Based on real-world consulting experiences, this book features a razor-focused set of topics and tools you’ll actually use, without introducing any simplistic “code smells” or bad habits.

So whether you’re a seasoned back-end developer, front-end developer or recent web boot camp graduate, this step-by-step guide will help you develop exceptional Node backends that will outlive Express and expand your design palate with functional programming patterns for any tech stack.


  • Full details: Search
  • View this book’s portal and details on how to post errata and suggestions here.

Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “devtalk.com" at checkout :+1:

3 Likes

Hello, I’ve found a small typo. Page 97.


It is written app.use(basicAuth(findUser.byCredentials));, but should have been app.use(basicAuth(findUserbyCredentials));

2 Likes