# orm-mysql

> Tiny ORM with Mysql

Latest version **0.1.7** (published 2017-05-04) · MIT license · 0 weekly downloads

## Install

```sh
npm install orm-mysql
pnpm add orm-mysql
yarn add orm-mysql
bun add orm-mysql
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.7 |
| Published | 2017-05-04 |
| First published | 2017-04-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Julien Jamet |
| Maintainers | jamet |
| Keywords | mysql, model, orm |

## Links

- npm: https://www.npmjs.com/package/orm-mysql
- Repository: https://github.com/jamet-julien/orm-mysql
- Issues: https://github.com/jamet-julien/orm-mysql/issues
- npm.io page: https://npm.io/package/orm-mysql

## Dependencies (1)

- [mysql](https://npm.io/package/mysql.md) ^2.13.0

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 0.1.7 (latest) — 2017-05-04
- 0.1.6 — 2017-05-02
- 0.1.5 — 2017-04-21
- 0.1.4 — 2017-04-21
- 0.1.3 — 2017-04-21
- 0.1.2 — 2017-04-21
- 0.1.1 — 2017-04-21
- 0.1.0 — 2017-04-21

## README

[![NPM](https://img.shields.io/npm/dt/orm-mysql.svg)](https://nodei.co/npm/orm-mysql)

Tiny ORM with Mysql to tiny project.

[![NPM](https://nodei.co/npm/orm-mysql.png?compact=true)](https://nodei.co/npm/orm-mysql)


## Installation

```bash
$ npm install orm-mysql
```


## Usage

file : User.js
```js
var Model   = require('orm-mysql')( require('./config-sql.js'));

class User extends Model{

  /**
   * [constructor description]
   * @return {[type]} [description]
   */
  constructor(){
    super();
    this._table   = 'User';
    this._referer = 'id';
  }

  /**
   * [_treatBeforeInsert description]
   * @param  {[type]} oData [description]
   * @return {[type]}       [description]
   */
  _treatBeforeInsert( oData){
    oData.nom    = oData.nom.toLowerCase();
    oData.prenom = oData.prenom.toLowerCase();
  }

  /**
   * [completeName description]
   * @return {[type]} [description]
   */
  get completeName(){
    return `${this.nom} ${this.prenom}`;
  }

}

module.exports = new User();

```
## Quick start

```js
var User      = require('./user.js');
var oPromise  = User.one("`id` = '2'");
var oPromises = User.all();

//ONE USER
oPromise.then(( oUser)=>{
    // read
    console.log( oUser.nom, oUser.prenom, oUser.completeName);

    // update
    oUser.nom = 'lorem';
    oUser.save().then(()=>{ console.log('saved OK ')});

}).catch((e)=>{
  console.log(e);
});

// ALL USERS
oPromises.then( ( aUser)=>{

    aUser.map( (oUser)=>{
      console.log( oUser.nom, oUser.prenom, oUser.completeName);
    })

})
```

## Overview

### Create

```js
var User      = require('./user.js');

var oPromise  = User.create({
  prenom : "john",
  nom    : "dupond"
}).then( ( oUser)=>{
  console.log( `${oUser.completeName} created`);
});


```
### Read

To read One element

```js
var User      = require('./user.js');

User.one(" `prenom` = 'john' ").then( ( oUser)=>{
  console.log( `Hi ! ${oUser.completeName}`);
});

```

To read Multi element
```js
var User      = require('./user.js');

User.all().then( ( aUsers)=>{

    aUsers.map((oUser)=>{
      console.log( `Hi ! ${oUser.completeName}`);
    })

});
```


### Update

```js
var User      = require('./user.js');

User.one(" `prenom` = 'john' ")
    .then( ( oUser)=>{
      oUser.nom = "Doe";
      oUser.save().then((oUser)=>{
        console.log( `${oUser.completeName} updated`);
      });
    });
```

### DELETE

```js
var User       = require('./user.js');

var oPromiseDel  = User.create({
                                prenom : "alphonse",
                                nom    : "dupond"
                              })
                      .then(( oUser)=>{
                              return oUser.destroy();
                            });

oPromiseDel.then(()=>{
  console.log('sup');
});

```

### CUSTOM

```js
var User       = require('./user.js');

User.customFind('SELECT * FROM user WHERE prenom = ?', 'john')
    .then(( aUsers)=>{

        aUsers.map((oUser)=>{
          console.log( `custom -> Hi ! ${oUser.completeName}`);
        })

    });

```

---
_Source: https://npm.io/package/orm-mysql · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
