massive
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/massive package

6.11.2 • Public • Published

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 onConflict.
  • Low overhead: An API built from your schema means direct access to your tables, views, and functions; all the power of SQL loaded from your project's script files; 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.

Dependencies (6)

Dev Dependencies (7)

Package Sidebar

Install

npm i massive

Weekly Downloads

4,813

Version

6.11.2

License

BSD-3-Clause

Unpacked Size

196 kB

Total Files

45

Last publish

Collaborators

  • robconery
  • dmfay