A-to-Z-List-of-Useful-Node.js-Modules

Collection of most awesome node modules that will extend the capability of your node.js application.

View project on GitHub

Banner

contributions welcome

  • Use Ctrl + F or command + F to search for a module.
  • Contributions are welcome.

Other awesome lists,

Packages for development

List of packages needed for development.

Frameworks

API Framework

  • Actionhero - Multi-transport Node.js API server with integrated cluster capabilities and delayed tasks.
  • Restify - A Node.js web service framework optimized for building semantically correct RESTful web services ready for production use at scale.
  • FeathersJS - An open source REST and realtime API layer for modern applications.
  • Loopback - Node.js framework for creating APIs and easily connecting to backend data sources.

Web Framework

  • Express - Fast, unopinionated, minimalist web framework for Node.js
  • Sails.js - Sails is the most popular MVC framework for Node.js.
  • Hapi - A rich framework for building applications and services.
  • Koa - Next generation web framework for Node.js
  • NestJS - A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
  • tinyhttp - 0-legacy, tiny & fast web framework as a replacement of Express

Microservice Framework

  • Micro - Asynchronous HTTP microservices.
  • Micro Panda - Node.js toolkit to help build microservices.
  • Micro-Whalla - A simple, fast framework for writing microservices in Node.js communicate using RPC / IPC.
  • Moleculer - Fast & powerful microservices framework for NodeJS.
  • Seneca - A microservices toolkit for Node.js
  • Serverless - Build and maintain web, mobile and IoT applications running on AWS Lambda and API Gateway (formerly known as JAWS).
  • StdLib - Standard library for microservices.
  • zeronode - A minimal building block for NodeJS microservices.

Machine Learning Framework

  • TensorFlow JS - a JavaScript library for training and deploying models in the browser and on Node.js.

Database

MongoDB & Helpers

  • Mongoose - Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment.
  • Mongoose Paginate v2 - A customizable cursor based pagination plugin for Mongoose.

MySQL & Helpers

  • MySQL - A node.js driver for mysql. It is written in JavaScript, does not require compiling.
  • Sequelize - Sequelize is a promise-based Node.js ORM for Postgres, MySQL, SQLite and Microsoft SQL Server.
  • Knex.js Knex.js is a “batteries included” SQL query builder for Postgres, MSSQL, MySQL, MariaDB, SQLite3, Oracle, and Amazon Redshift designed to be flexible, portable, and fun to use.

Development

  • Async - Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript.
  • Cheerio - jQuery for Server side. Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
  • PDFKit - A JavaScript PDF generation library for Node and the browser.
  • Faker - Generate massive amounts of fake data in the browser and node.js
  • Through - simple way to create a ReadableWritable stream that works
  • browserify - browser-side require() the node.js way

File System

  • fs-extra - Node.js: extra methods for the fs object like copy(), remove(), mkdirs()

Command Line

  • Inquirer.js - A collection of common interactive command line user interfaces.
  • Commander.js - The complete solution for node.js command-line interfaces, inspired by Ruby’s commander.

Parser

  • NodeCSV - Full featured CSV parser with simple api and tested against large datasets.
  • ShowdownJS - Markdown to HTML converter JS library

Image Processing

  • GM - GraphicsMagick and ImageMagick for node
  • Sharp - High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP and TIFF images. Uses the libvips library.

Utility Library

  • Lodash - a JavaScript library which provides utility functions for common programming tasks using the functional programming paradigm.
  • Underscore.js - A JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.
  • UUID - For the creation of RFC4122 UUIDs

Crypto

  • bcrypt - A library to help you hash passwords.
  • crypto-js - JavaScript library of crypto standards.

Validation and Formatting

  • Validator.js - A library of string validators and sanitizers.
  • MomentJs - A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates.
  • express-validator - An express.js middleware for validator.js.
  • JOI - The most powerful schema description language and data validator for JavaScript

Minifiers

  • HTML Minifier - Javascript-based HTML compressor/minifier (with Node.js support)
  • CleanCSS - Fast and efficient CSS optimizer for node.js and the Web
  • UglifyJS2 - UglifyJS is a JavaScript parser, minifier, compressor and beautifier toolkit.
  • SVGO - SVG Optimizer is a Nodejs-based tool for optimizing SVG vector graphics files.

Templates

  • EJS - Embedded JavaScript templates
  • hbs - Express.js template engine plugin for Handlebars

Authentication

  • PassportJS - Passport is authentication middleware for Node.js and Express . A comprehensive set of strategies support authentication using a username and password, Facebook, Twitter, and more.
  • JSON Web Token - Implementation of JSON Web Tokens

Upload Files

  • express-fileupload - Simple express middleware for uploading files.
  • Multer-JS - Multer is a node.js middleware for handling multipart/form-data, which is primarily used for uploading files. It is written on top of busboy for maximum efficiency.

Form Information

  • Body-parser - Node.js body parsing middleware - Parse incoming request bodies in a middleware before your handlers, available under the req.body property.

Flash Messages

  • connect-flash - The flash is a special area of the session used for storing messages. Messages are written to the flash and cleared after being displayed to the user. The flash is typically used in combination with redirects, ensuring that the message is available to the next page that is to be rendered.

EMail

  • Nodemailer - Send e-mails with Node.JS – easy as cake!
  • Express-Mailer - Send Emails from your application and response object.

HTTP REST Client

  • Axios - Promise based HTTP client for the browser and node.js
  • Request - Request is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default.
  • method-override - Lets you use HTTP verbs such as PUT or DELETE in places where the client doesn’t support it.

Realtime Tasks

  • Socket.IO - Socket.IO enables real-time bidirectional event-based communication.

Job Scheduler & Queueing

  • CRON - Cron is a tool that allows you to execute something on a schedule.
  • Agenda - A light-weight job scheduling library for Node.js.
  • Node Schedule - A flexible job scheduler for Node.js that can perform different types of scheduling: Cron-style, Data-based and Recurrence Rule.

Robotic Process Automation & Desktop Automation

  • ROBOTJSNode.js Desktop Automation. Control the mouse, keyboard, and read the screen.
  • PuppeteerPuppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol.

Automation

  • Grunt - Grunt is a JavaScript task runner, a tool used to automatically perform frequent tasks such as minification, compilation, unit testing, and linting.
  • Gulp - Gulp is a task runner used for automation of time-consuming and repetitive tasks involved in web development like minification, concatenation, cache busting, unit testing, linting, optimization, etc.

Terminal / Command Line

  • Commander - The complete solution for node.js command-line interfaces, inspired by Ruby’s commander.
  • Colors - Easily add ANSI colors to your text and symbols in the terminal.
  • Chalk - Terminal string styling done right.

Game

  • ox - tiny 2D game framework for the web
  • Selfish - class-free, pure prototypal inheritance
  • Mibbu - Javascript game microframework
  • jAllegro - JavaScript port of a game programming library
  • Ocelot - minimalist HTML5 2D game engine, Ocelot aims for simplicity and small filesize
  • js13k-boilerplate - js13kGames boilerplate
  • js13k-toolkit - starter repository for js13kGames, a set of tools for developing a JS game and keeping it under 13kb
  • js13k-requirejs - require.js-powered application template with build tools
  • js13k-rollup - gulp/rollup.js powered template with support for ES2015 modules and build tools
  • js13k-starter - sample js13k project structure, example and Gulp build process
  • Tiny-Canvas - lightweight minimal implementation of a batched and stack matrix based Canvas with WebGL backend
  • Ga - tiny, cute and friendly system for making HTML5 games
  • platform-engine - 2D platform engine that handles collisions, slopes, rotations, etc.
  • js13kGames-boilerplate - includes game loop, utility functions and webpack config to package game with just one command
  • js13k-webpack-starter - build with a single command, dev server, es2015 support
  • js13k-base - simple commands, a server, and a sample game + framework
  • js13kgames-parcel-starter - starter repo to build, zip, and check the file size of your game with a single command
  • responsiveTouchGameFramework - responsive canvas game framework with unified mouse / tactile inputs
  • Tweetwork - a 140b canvas game framework
  • Kontra - a lightweight JavaScript gaming micro-library, optimized for js13kGames
  • JS13K 2017 Kit - a pico-8 like graphics engine and game boilerplate

Testing

  • Mocha - Simple, flexible, fun JavaScript test framework for Node.js & The Browser
  • Chai - Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.
  • Jest - Jest is a delightful JavaScript Testing Framework with a focus on simplicity..
  • Enzyme - Enzyme is a JavaScript Testing utility for React that makes it easier to test your React Components’ output. You can also manipulate, traverse, and in some ways simulate runtime given the output
  • cucumber Gherkin - JCucumber is a tool that supports Behaviour-Driven Development(BDD).
  • React Testing Library - The React Testing Library is a very light-weight solution for testing React components. The more your tests resemble the way your software is used, the more confidence they can give you.

Web Security

  • Helmet - Helmet helps you secure your Express apps by setting various HTTP headers. It’s not a silver bullet, but it can help!
  • Lusca - Web application security middleware.

Code Quality

Linting

  • ESLint - The pluggable linting utility for JavaScript and JSX
  • JSHint - A Static Code Analysis Tool for Javascript.

Packages for Management & Operations

List of packages needed for management and operations.

Loggers/Logging

  • Winston - A logger for just about everything.
  • Morgan - HTTP request logger middleware for node.js

Monitoring

  • PM2 - It allows you to keep applications alive forever, to reload them without downtime and facilitate common Devops tasks.
  • Forever - A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
  • nodemon - Monitor for any changes in your node.js application and automatically restart the server - perfect for development
  • Trace - A visualised stack trace platform designed for microservices.

Code Quality Analysis

  • Plato - JavaScript source code visualization, static analysis, and complexity tool.

Boost Productivity

  • ProjectMan - A Project Manager to add projects to favorites and open them from your command-line.

Data Sets

  • Country State City - Full Database of city state country available in JSON, SQL, XML, YAML & CSV format.