Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kryz81/awesome-nodejs-learning

A list limited to the best Node.js Learning Resources
https://github.com/kryz81/awesome-nodejs-learning

List: awesome-nodejs-learning

awesome awesome-list nodejs

Last synced: 3 months ago
JSON representation

A list limited to the best Node.js Learning Resources

Awesome Lists containing this project

README

        

# Awesome Node.js Learning Resources

[![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

---

## Contents

- [Awesome Node.js Learning Resources](#awesome-nodejs-learning-resources)
- [Contents](#contents)
- [Node.js Certification](#nodejs-certification)
- [Node.js History](#nodejs-history)
- [Module System](#module-system)
- [Patterns, Anti-patterns, Best practices](#patterns-anti-patterns-best-practices)
- [Reactor Pattern](#reactor-pattern)
- [Node.js Internals](#nodejs-internals)
- [Event Loop](#event-loop)
- [Streams](#streams)
- [Event System](#event-system)
- [Dependency Injection](#dependency-injection)
- [Handling Errors](#handling-errors)
- [Testing](#testing)
- [Debugging](#debugging)
- [Linting and formatting](#linting-and-formatting)
- [Optimizing Performance](#optimizing-performance)
- [Security](#security)
- [Logging](#logging)
- [Authentication](#authentication)
- [Websockets](#websockets)
- [Node.js with docker](#nodejs-with-docker)
- [Node.js with typescript](#nodejs-with-typescript)
- [Microservices](#microservices)
- [Monitoring](#monitoring)
- [Frameworks](#frameworks)
- [Architecture and Project Structure](#architecture-and-project-structure)
- [Native Modules](#native-modules)
- [NPM](#npm)
- [Other](#other)
- [Recommended Books](#recommended-books)
- [Recommended courses](#recommended-courses)

---

## Node.js Certification

- [Node.js Certification: first impressions](https://dev.to/kryz/node-js-certification-first-impressions-21a1)

## Node.js History

- [Original Node.js Presentation by Ryan Dahl](https://www.youtube.com/watch?v=ztspvPYybIY)
- [History of Node.js on a Timeline](https://blog.risingstack.com/history-of-node-js/)

## Module System

- [What is a difference between a module and a package](https://stackoverflow.com/questions/20008442/difference-between-a-module-and-a-package-in-node)
- [Getting started with Node.js modules](https://adrianmejia.com/getting-started-with-node-js-modules-require-exports-imports-npm-and-beyond/)
- [Requiring modules in Node.js: Everything you need to know](https://www.freecodecamp.org/news/requiring-modules-in-node-js-everything-you-need-to-know-e7fbd119be8/)

## Patterns, Anti-patterns, Best practices

- [20 ways to become a better Node.js developer in 2020](https://medium.com/@me_37286/20-ways-to-become-a-better-node-js-developer-in-2020-d6bd73fcf424)
- **[The largest Node.js best practices list](https://github.com/goldbergyoni/nodebestpractices)**
- [Fundamental Node.js Design Patterns](https://blog.risingstack.com/fundamental-node-js-design-patterns/)
- [9 Ways to Avoid Pitfalls Using Node.js](https://blog.avenuecode.com/9-ways-to-avoid-pitfalls-using-nodejs)

## Reactor Pattern

- [Understanding Reactor Pattern](https://dzone.com/articles/understanding-reactor-pattern-thread-based-and-eve)
- [Understanding Reactor Pattern for Highly Scalable I/O Bound Web Server](https://www.puncsky.com/blog/2015/01/13/understanding-reactor-pattern-for-highly-scalable-i-o-bound-web-server/)

## Node.js Internals

- [Crossing the JS/C++ Boundary — Advanced Node.js Internals](https://blog.insiderattack.net/crossing-the-js-c-boundary-advanced-nodejs-internals-part-1-cb52957758d8)
- [Internals of Node- Advance node](https://medium.com/front-end-weekly/internals-of-node-advance-node-%EF%B8%8F-8612f6a957d7)
- [https://codeburst.io/node-js-v8-internals-an-illustrative-primer-83766e983bf6](https://codeburst.io/node-js-v8-internals-an-illustrative-primer-83766e983bf6)
- [Node.js C++/JS Boundary: Crossing The Rubicon](https://blog.bitsrc.io/nodejs-c-js-boundary-crossing-the-rubicon-c9c5511907a2)

## Event Loop

- [Event Loop and the Big Picture](https://blog.insiderattack.net/event-loop-and-the-big-picture-nodejs-event-loop-part-1-1cb67a182810)
- [Timers, Immediates and Next Ticks](https://blog.insiderattack.net/timers-immediates-and-process-nexttick-nodejs-event-loop-part-2-2c53fd511bb3)
- [Promises, Next Ticks and Immediates](https://blog.insiderattack.net/promises-next-ticks-and-immediates-nodejs-event-loop-part-3-9226cbe7a6aa)
- [Handling IO with Event Loop](https://blog.insiderattack.net/handling-io-nodejs-event-loop-part-4-418062f917d1)
- [Event Loop Best Practices](https://blog.insiderattack.net/event-loop-best-practices-nodejs-event-loop-part-5-e29b2b50bfe2)
- **[New Changes to the Timers and Microtasks in Node v11.0.0](https://blog.insiderattack.net/new-changes-to-timers-and-microtasks-from-node-v11-0-0-and-above-68d112743eb3)**
- [The Event Loop](https://developer.ibm.com/tutorials/learn-nodejs-the-event-loop/)
- [A complete guide to the Node.js event loop](https://blog.logrocket.com/a-complete-guide-to-the-node-js-event-loop/)
- [What you should know to really understand the Node.js Event Loop](https://medium.com/the-node-js-collection/what-you-should-know-to-really-understand-the-node-js-event-loop-and-its-metrics-c4907b19da4c)
- [The Node.js Event Loop](https://flaviocopes.com/node-event-loop/)

## Streams

- [Stream Handbook by substack](https://github.com/substack/stream-handbook)
- [Node.js Streams: Everything you need to know](https://www.freecodecamp.org/news/node-js-streams-everything-you-need-to-know-c9141306be93/)
- [Node.js Streams](https://flaviocopes.com/nodejs-streams/)
- [Node.js Streams Demystified](https://codeburst.io/nodejs-streams-demystified-e0b583f0005)
- [Node.js File Streams Explained](https://areknawo.com/node-js-file-streams-explained/)

## Event System

- [Event-Driven Programming in Node.js](https://alligator.io/nodejs/event-driven-programming/)
- [How to code your own event emitter in Node.js](https://www.freecodecamp.org/news/how-to-code-your-own-event-emitter-in-node-js-a-step-by-step-guide-e13b7e7908e1/)
- [Handling and dispatching events with Node.js](https://blog.logrocket.com/handling-and-dispatching-events-with-node-js/)

## Dependency Injection

- [Dependency injection in Node.js projects](https://blog.alejandrocelaya.com/2018/12/14/dependency-injection-in-nodejs-projects/)
- [Dependency Injection in Node.js](https://blog.risingstack.com/dependency-injection-in-node-js/)
- [Do I need Dependency Injection in Node.js?](https://stackoverflow.com/questions/9250851/do-i-need-dependency-injection-in-nodejs-or-how-to-deal-with)
- [Node.js advanced pattern: Dependency Injection Container](https://isamatov.com/node-js-dependency-injection-container/)

## Handling Errors

- **[Error Management in Node.js Applications](https://dev.to/deepal/error-management-in-node-js-applications-3d2k)**
- [Error Handling in Node.js](https://www.joyent.com/node-js/production/design/errors)
- [Error Management in Node.js Applications](https://blog.insiderattack.net/error-management-in-node-js-applications-e43198b71663)
- [Error handling - The missing piece of your node.js architecture](https://softwareontheroad.com/error-handling-nodejs/)
- [Functional Error Handling with Express.js and DDD](https://khalilstemmler.com/articles/enterprise-typescript-nodejs/functional-error-handling/)

## Testing

- **[Node.js & JavaScript Testing Best Practices](https://medium.com/@me_37286/yoni-goldberg-javascript-nodejs-testing-best-practices-2b98924c9347)**
- [Unit Testing Express Middleware Behavior](https://medium.com/@morrissinger/unit-testing-express-middleware-behavior-in-ecmascript-2015-f1641ebb8040)
- [A testing guide for Express with request and response mocking/stubbing using Jest or sinon](https://codewithhugo.com/express-request-response-mocking/)
- [Unit testing in Express with Promise-based Middleware and Controllers](https://codeburst.io/unit-testing-in-express-with-promise-based-middleware-and-controllers-7d3d59ae61f8)
- [Testing streams: a primer](https://dev.to/cdanielsen/testing-streams-a-primer-3n6e)
- [Please, stop playing with proxyquire](https://dev.to/thekashey/please-stop-playing-with-proxyquire-11j4)

## Debugging

- [The Absolute Easiest Way to Debug Node.js — with VS Code](https://itnext.io/the-absolute-easiest-way-to-debug-node-js-with-vscode-2e02ef5b1bad)
- [Debugging Node.js with Google Chrome](https://medium.com/the-node-js-collection/debugging-node-js-with-google-chrome-4965b5f910f4)
- [How to Debug a Node.js app in a Docker Container](https://blog.risingstack.com/how-to-debug-a-node-js-app-in-a-docker-container/)

## Linting and formatting

- [How to use ESLint in Node.js Applications?](https://hackernoon.com/how-to-use-eslint-in-node-js-applications-cc4b2298ce55)
- [Why (and how) to use eslint in your project](https://medium.com/the-node-js-collection/why-and-how-to-use-eslint-in-your-project-742d0bc61ed7)
- [Node.js – Auto Lint & Format on Git Commit with Airbnb Style Guide](https://coffeencoding.com/nodejs-auto-lint-format-on-git-commit-with-airbnb-styleguide/)

## Optimizing Performance

- **[Five Misconceptions on How NodeJS Works](https://blog.insiderattack.net/five-misconceptions-on-how-nodejs-works-edfb56f7b3a6)**
- [Deep Dive Into Worker Threads in Node.js](https://blog.insiderattack.net/deep-dive-into-worker-threads-in-node-js-e75e10546b11)
- [Monitoring Node.js: Watch Your Event Loop Lag!](https://davidhettler.net/blog/event-loop-lag/)
- [Node.js under a Microscope: CPU FlameGraph and FlameScope](https://shuheikagawa.com/blog/2018/09/16/node-js-under-a-microscope/)

## Security

- [We’re under attack! 23+ Node.js security best practices](https://medium.com/@nodepractices/were-under-attack-23-node-js-security-best-practices-e33c146cb87d)
- [OWASP Node Goat Tutorial: Fixing OWASP Top 10](https://nodegoat.herokuapp.com/tutorial)
- [Why npm lockfiles can be a security blindspot for injecting malicious modules](https://snyk.io/blog/why-npm-lockfiles-can-be-a-security-blindspot-for-injecting-malicious-modules/)
- [Understanding filesystem takeover vulnerabilities in npm JavaScript package manager](https://snyk.io/blog/understanding-filesystem-takeover-vulnerabilities-in-npm-javascript-package-manager/)
- [Understanding and implementing rate limiting in Node.js](https://blog.logrocket.com/rate-limiting-node-js/)

## Logging

- [A Guide to Node.js Logging](https://www.twilio.com/blog/guide-node-js-logging)
- [Logging: Best Practices for Node.js Applications](https://blog.bitsrc.io/logging-best-practices-for-node-js-applications-8a0a5969b94c)
- [Getting Started With morgan](https://alligator.io/nodejs/getting-started-morgan/)
- [Node.js Logging Tutorial](https://stackify.com/node-js-logging/)

## Authentication

- [Learn how to handle authentication with Node using Passport.js](https://www.freecodecamp.org/news/learn-how-to-handle-authentication-with-node-using-passport-js-4a56ed18e81e/)
- [Your Node.js authentication tutorial is (probably) wrong](https://hackernoon.com/your-node-js-authentication-tutorial-is-wrong-f1a3bf831a46)
- [You don't need passport.js - Guide to Node.js authentication](https://dev.to/santypk4/you-don-t-need-passport-js-guide-to-node-js-authentication-26ig)

## Websockets

- [Introduction to Socket.IO](https://alligator.io/nodejs/intro-to-socketio/)

## Node.js with docker

- [Docker and Node.js Best Practices from Bret Fisher at DockerCon](https://www.youtube.com/watch?v=Zgx0o8QjJk4)
- [Step-by-Step Guide to Setup Node With Docker](https://dev.to/itmayziii/step-by-step-guide-to-setup-node-with-docker-2mc9)
- [Node.js memory management in container environments](https://medium.com/the-node-js-collection/node-js-memory-management-in-container-environments-7eb8409a74e8)
- [Learn Docker - DevOps with Node.js & Express](https://www.youtube.com/watch?v=9zUHg7xjIqQ)

## Node.js with typescript

- [Best Practices For Using TypeScript with Node.js](https://blog.bitsrc.io/best-practices-for-using-typescript-with-node-js-50907f8cc803)
- [Setting Up a Node Project With Typescript](https://scotch.io/tutorials/setting-up-a-node-project-with-typescript)

## Microservices

- [My Favorite Microservice Design Patterns for Node.js](https://blog.bitsrc.io/my-favorite-microservice-design-patterns-for-node-js-fe048c635d83)

## Monitoring

- [Top Node.js Metrics to Monitor](https://dev.to/sematext/top-node-js-metrics-to-monitor-1id5)

## Frameworks

- [An introduction to the hapi Node.js Framework](https://alligator.io/nodejs/intro-to-hapi/)
- [Serving Static Files in Express.js](https://alligator.io/nodejs/serving-static-files-in-express/)

## Architecture and Project Structure

- [Bulletproof node.js project architecture ](https://softwareontheroad.com/ideal-nodejs-project-structure/)
- [Implementing Event Sourcing and CQRS pattern with MongoDB](https://dev.to/deepal/implementing-event-sourcing-and-cqrs-pattern-with-mongodb-enn)

## Native Modules

- [Primer into Node.js Native Modules](https://www.codementor.io/@andreiglingeanu/primer-into-nodejs-native-modules-ks0awzluk)
- [The Future of Native Modules in Node.js](https://www.nearform.com/blog/the-future-of-native-modules-in-node-js/)
- [Native Extensions for Node.js](https://medium.com/the-node-js-collection/native-extensions-for-node-js-767e221b3d26)

## NPM

- [What's what? - Package.json cheatsheet](https://dev.to/areknawo/what-s-what-package-json-cheatsheet-1g28)
- [These NPM tricks will make you a pro](https://www.freecodecamp.org/news/10-npm-tricks-that-will-make-you-a-pro-a945982afb25/)
- [NPM Task Running Techniques](https://medium.com/netscape/npm-task-running-techniques-15fe5b697f15)
- [4 Solutions To Run Multiple Node.js or NPM Commands Simultaneously](https://itnext.io/4-solutions-to-run-multiple-node-js-or-npm-commands-simultaneously-9edaa6215a93)
- [Three Things You Didn't Know You Could Do with npm Scripts](https://www.twilio.com/blog/npm-scripts)

## Other

- [Running Multiple Versions of Node.js with Node Version Manager](https://alligator.io/nodejs/node-version-manager/)
- [Want to be a Web Developer? Learn Node.js not PHP](https://medium.com/zerotomastery/want-to-be-a-web-developer-learn-node-js-not-php-dc298154fafd)
- [The leftpad incident](https://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm)

## Recommended Books

- **[Node.js Design Patterns](https://www.nodejsdesignpatterns.com)** (must-read for every node.js dev)
- [Node Cookbook](https://www.packtpub.com/catalogsearch/result/?q=node%20cookbook)

## Recommended courses

- [Node.js: Advanced Concepts](https://www.udemy.com/advanced-node-for-developers/)
- [Beginner's Series to Node.js](https://www.youtube.com/playlist?list=PLlrxD0HtieHje-_287YJKhY8tDeSItwtg) - 26 short videos to start coding with Node.js