Node.js ORM, or Object-Relational Mapping, is a programming technique that simplifies database interaction in Node.js applications. It enables developers to work with databases using JavaScript or TypeScript objects instead of raw SQL queries. This approach abstracts the complexities of database operations, allowing for a more object-oriented coding style. With features like cross-database compatibility, schema management, query building, and middleware support, Node.js ORM libraries, such as Mongoose, Prisma, Knex, Sequelize, TypeORM, Objection, Bookshelf, and Waterline, provide a convenient and consistent way to model, query, and manage data in various database systems, catering to different project needs and preferences in the Node.js ecosystem.
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 while still making the common stuff easy and enjoyable.
Even though ORM is the best commonly known acronym to describe objection, a more accurate description is to call it a relational query builder. You get all the benefits of an SQL query builder but also a powerful set of tools for working with relations.
Objection.js is built on an SQL query builder called 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:
The best way to get started is to clone our example project and start playing with it. There's also a typescript version available.
Check out this issue to see who is using objection and what they think about it.
Shortcuts: