node-ar

A simple nodejs module as active-record does

npm install node-ar
1 downloads in the last week
1 downloads in the last month

node-ar

Purpose

A simple ActiveRecord like nodejs module

It supports 'has_many' and 'belongs_to' relationship

You can find and find_by* each field name

Important: it works synchronously.

Introduction

This module is based on Sannis's node-mysql-libmysqlclient. Node-Ar adds some simple features as ActiveRecord does. I want to explain that it is not completed. This should be considered an example. But I would to expand it also with your help.

So, do not hesitate to contact me for any question or doubts

My mind is open for any collaboration ;)

Installation

For installing this module try

npm install node-ar

Usage

See file in the spec folder for examples

Overview

Having a DB as ActiveRecord on Rails wants. You can able to perform select insert and update using Models like instances.

DataType (used to declare the fields)

DataType.String # the VARCHAR type DataType.Int # the INT type DataType.Boolean # the TYNINT type (tmporarly incompleted)

Model

(Static methods) Model.find( id / as NUM / ) # returns the instance of the model if found. Otherwise null Model.find( 'all' ) # returns an Array instance contaning all model found by performing the select. Empty array if no record found Model.find( 'first' ) # returns the instance of the model representing the first matched record if found. Otherwise null Model.find_by( where, options, limit )

# where (Object)
```javascipt
where = {
  field_foo_name: field_foo_value,
  field_bar_name: field_bar_value,
}
```
# options (Object)
```javascript
options = {
  includes: ['table_foo_name', 'table_bar_name'],
  joins: {
    table_foo_name: {                       // INNER JOIN table_foo_name
      field_bar_name: {                     // ON  field_bar_name
        table_xxxx_name: 'field_xxxx_name'  // = table_xxxx_name.field_xxxx_name
      }
    }
  }
}
```
# limit (Number)    Used as `LIMIT` sql condition

Model.find_by_foo_field_name( value ) # return an Array containing the result of select * from table_foo_name where FOO_FIELD_NAME = VALUE. A Model single instance if field id declared as unique

Todo

What i'm going to add:

  • Implement events
  • Fields validation
  • BUG: it doesn't delete the has_many relations while deleting a Model from DB. But I'm working to fix it.

  • More documentation is coming... ;)

npm loves you