grand-central-records

An activerecord-inspired ORM for Node.js

Grand Central Records (GCR)

A promise-based Node ORM/ActiveRecord library that can connect to MySQL, Postgres, and SQLite3. Allows chainable, raw or queueable queries.


var GCR = require('grand-central-records');
 
var Model = new GCR({
    adapter: "mysql",
    host: "localhost",
    database: "test",
    username: "admin",
    password: "admin"
}, "users");
 
Model.find(8).then(function(users) {
    console.log(users[0].name);
}).catch(console.error);
 
Model.select(["name","address"]).where({admin: true})
.then(function(result) {
    result.forEach(function(user) { ... });
});

Creating a new instance of the GCR object creates a connection to a new database.

  • connection object — Database connection parameters.
    • adapter — mysql/MySQL, postgresql/postgres/pg, sqlite3/sqlite
    • host, database, username, password — connection parameters
  • table string — An optional table name if only a single table is being queried.
  • options object — Options to pass to the model.
    • verbose boolean function — Turning verbose on will log all queries to the console. false by default. If a function is provided, it will be used to log all outputs.
    • idAttribute string — The name of the unique ID attribute field (defaults to 'id').
    • (see Models)

  • table string — The name of the table the model is associated with.
  • options json — See above.

Multiple models can also be created from the same database.

var GCR = require('grand-central-records');
 
var db = new GCR({
    adapter: "mysql",
    host: "localhost",
    database: "test",
    username: "admin",
    password: "admin"
}, { verbose: true });
 
var User = db.model("users"),
    Project = db.model("projects");

Documentation