/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.

Primary LanguageJavaScriptMIT LicenseMIT

Banner

contributions welcome HitCount

  • 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.

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.

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

Machine Learning Framework

  • TensorFlow - An open source machine learning framework for everyone

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.

Development

  • Lodash - Lodash is a JavaScript library which provides utility functions for common programming tasks using the functional programming paradigm.
  • Underscore - Underscore.js is a utility-belt library for JavaScript that provides support for the usual functional suspects (each, map, reduce, filter...) without extending any core JavaScript objects.
  • Async - Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript.
  • MomentJs - A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates.
  • Cheerio - jQuery for Server side. Fast, flexible, and lean implementation of core jQuery designed specifically for the server.

Templates

  • EJS - Embedded JavaScript templates

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.

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

  • Agenda - A light-weight job scheduling library for Node.js.

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.

Testing

  • Mocha - Simple, flexible, fun JavaScript test framework for Node.js & The Browser

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.