node package manager


An SQL-friendly ORM for Node.js


Objection.js is an ORM for Node.js that aims to stay out of your way and make it as easy as possible to use the full power of SQL and the underlying database engine.

Objection.js is built on the wonderful SQL query builder knex. All databases supported by knex are supported by objection.js. SQLite3, Postgres and MySQL are thoroughly tested.

What objection.js gives you:

What objection.js doesn't give you:

  • A custom query DSL. SQL is used as a query language.
  • Automatic database schema creation and migration. For simple things it is useful that the database schema is automatically generated from the model definitions, but usually just gets in your way when doing anything non-trivial. Objection.js leaves the schema related things to you. knex has a great migration tool that we recommend for this job. Check out the example project.

Objection.js uses Promises and coding practices that make it ready for the future. We use Well known OOP techniques and ES6 compatible classes and inheritance in the codebase. You can even use things like ES7 async/await using a transpiler such as Babel. Check out our ES6 and ES7 example projects.

Objection.js API reference

Tutorials and blogs: