Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including massive with all npm packages installed. Try it out:

var massive = require("massive")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

massive v6.1.3

A small query tool for Postgres that embraces json and makes life simpler

Massive.js: A Postgres-centric Data Access Tool

node Build Status Coverage Status npm

Massive is a data mapper for Node.js that goes all in on PostgreSQL, and embraces the power and flexibility of SQL itself and of the relational metaphor. With minimal abstractions for the interfaces and tools you already use, its goal is to do just enough to make working with your data and your database as easy and intuitive as possible, then get out of your way.

Massive is not an object-relational mapper (ORM)! It doesn't use models, it doesn't track state, and it doesn't box you into working and thinking in terms of individual entities. Massive connects to your database and introspects its schemas to build an API for the data model you already have: your tables, views, functions, and easily-modified SQL scripts.

Here are some of the highlights:

  • Dynamic query generation: Massive's versatile query builder supports a wide variety of operators in a simple criteria object, and can handle everything from complex sorting in order to true upserts with onConflictUpdate.
  • Low overhead: An API built from your schema means direct access to your tables, views, and functions; raw SQL when you need it; super-simple bulk operations; and no model classes to maintain!
  • Join what you need, when you need it: Call join() on any table or view to use Massive's query and even persistence methods over multiple relations at once.
  • Document storage: PostgreSQL's JSONB data type makes it possible to blend relational and document techniques. Massive makes working with documents as straightforward as possible: objects in, objects out, with the metadata managed for you.
  • Transactions: Use db.withTransaction() to execute a callback with full Massive API support in a transaction scope, getting a promise which fulfills if it commits or rejects if it rolls back.
  • Postgres everything: Many, if not most, relational data access tools are built with compatibility across various relational database management systems in mind. Massive is not. By committing to a single RDBMS, Massive gains support for array fields and operations, regular expression matching, foreign tables, materialized views, and more features found in PostgreSQL but not its competition.

Installation

npm i massive --save

Documentation

Documentation and API docs are at MassiveJS.org.

Contributing

See CONTRIBUTING.md.

Older Versions

If you need a callback-based API, install Massive.js v2: npm install massive@2

Documentation for Massive.js 2.x is at readthedocs.

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free