1.0.3 • Published 6 years ago

mfd v1.0.3

Weekly downloads
3
License
ISC
Repository
github
Last release
6 years ago

mfd

Simple, object-based interaction with SQL.

Examples

Schema

CREATE TABLE `person` (
	`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
	`first` VARCHAR(128) NULL DEFAULT NULL,
	`last` VARCHAR(128) NOT NULL,
	PRIMARY KEY (`id`)
);
CREATE TABLE `friend` (
	`source` INT(10) UNSIGNED NOT NULL,
	`target` INT(10) UNSIGNED NOT NULL,
	PRIMARY KEY (`source`, `target`),
	INDEX `likedBy` (`target`),
	CONSTRAINT `friends` FOREIGN KEY (`source`) REFERENCES `person` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
	CONSTRAINT `likedBy` FOREIGN KEY (`target`) REFERENCES `person` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
);

Setup

const MFD = require( "../index.js" );

const mfd = new MFD( {
	host: "localhost",
	user: "test",
	database: "test"
} );

Create

const tim = new mfd.collections.person( { first: "Tim", last: "Smith" } );
await tim.save();
console.log( ( await mfd.query( "person" ).where( { first: "Tim" } ).execute() )[ 0 ] );

> { id: 6, first: 'Tim', last: 'Smith' }

Read

mfd.query( "person" )
	.populate( "friends", "friends.target" )
	.where( { $or: [ { "person.first": "Robert" }, { "person.first": "Brad" } ] } )
	.execute()
	.then( results => console.log( results ) ).catch( err => console.error( err ) );

> [ { id: 1,
    first: 'Brad',
    last: 'Hesse',
    friends:
     [ { source: 1,
         target:
          { id: 2,
            first: 'Robert',
            last: 'Coe',
            friends: [ [Object], [Object], [Object] ] } },
       { source: 1, target: { id: 3, first: 'French', last: 'Boy' } },
       { source: 1, target: { id: 4, first: 'James', last: 'Joe' } } ] },
  { id: 2,
    first: 'Robert',
    last: 'Coe',
    friends:
     [ { source: 2,
         target:
          { id: 1,
            first: 'Brad',
            last: 'Hesse',
            friends: [ [Object], [Object], [Object] ] } },
       { source: 2, target: { id: 4, first: 'James', last: 'Joe' } },
       { source: 2,
         target: { id: 5, first: 'Kiefer', last: 'von Gaza' } } ] } ]

Update

const robert = ( await mfd.query( "person" ).where( { first: "Robert" } ).execute() )[ 0 ];
robert.last = "Coel";
await robert.save();
console.log( ( await mfd.query( "person" ).where( { first: "Robert" } ).execute() )[ 0 ] );

> { id: 2, first: 'Robert', last: 'Coel' }
1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago