Introducing mysql-orm-promise

Rohit Sharma 2015-12-31
Introducing mysql-orm-promise

mysql-orm-promise

A node.js based ORM to communicate with your MySQL database.

After trying several npm packages for interacting with MySQL, I decided to create a cleaner and robust version of my own. I have come across packages which follow the callback as well as the promise based implementations, but query chaining was something which felt missing from those packages. I needed something which would be a shameless mockery of the mongoosejs package(a pure model implementation on schema basis, and allow me to chain my queries in an easy and cleaner way), but for MySQL.

Enter mysql-orm-promise

Using this package can be as easy as eating a pie(smirks). So let’s begin.

Install

npm install mysql-orm-promise

Initialization

var MysqlORM = require('mysql-orm-promise')
MysqlORM.connection.connect({
    host     : '<hostname>',
    user     : '<username>',
    password : '<password>',
    database : '<database_name>'
})

A simple query - retrieving all records

var UserModel = MysqlORM.model('user')
UserModel.findAll().exec().then(function(usersData){
    // usersData is the array of results
    // The attributes of the records can be accessed as `usersData[0].attributes`
    // In order to get the `name` attribute of the user, you will have to execute the following code
    console.log(usersData[0].attributes.name)
})

Query Chaining

UserModel.where({"name": "Jack"})
.skip(5)
.limit(10)
.orderBy('last_name')
.exec()
.then(function(usersData){
    // handle the result data here
})

Moving Forward

mysql-orm-promise currently only allows you execute read operations on your database. Write operations are still a work in progress. You can check out the links below for future updates