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) {
}).catch(console.error);["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");