1.4.7 • Published 3 years ago

node-norm v1.4.7

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

node-norm

node-norm is intermediate layer to access data source (database, file, else?).

npm i node-norm

Features

  • Adaptive persistence, you can easily extend by creating new adapters,
  • Multiple connections to work with,
  • NoSQL-like approaches,
  • Data fixtures.

How to work with it

const { Manager } = require('node-norm');
const manager = new Manager({
  connections: [
    {
      name: 'default',
      adapter: Disk, // change with constructor of adapter
      schemas: [
        {
          name: 'friend',
        }
      ],
    },
  ],
})

(async () => {
  let session = manager.openSession();

  try {
    let friend = { first_name: 'John', last_name: 'Doe' };

    await session.factory('foo.friend').insert(friend).save();
    // same as
    await session.factory('friend').insert(friend).save();
    // same as
    await session.factory(['foo', 'friend']).insert(friend).save();
    
    let data = await session.factory('foo', { bar: 'foobar' }).single();
    //similiar with syntax: SELECT * FROM foo where bar = 'foobar' LIMIT 1 ;
    let data = await session.factory('foo', { bar: 'foobar' }).all();
    let data = await session.factory('foo').find({ bar: 'foobar' }).all();
    //similiar with syntax: SELECT * FROM foo where bar = 'foobar' ;
    let data = await session.factory('foo').all();
    //similiar with syntax: SELECT * FROM foo;
    let data = await session.factory('foo').find({ userId: 1, 'userName!like': 'foo' }).all();
    // on example userName separate by !, you can use 'or', 'lt', 'gt' 
    //similiar with syntax: SELECT * FROM foo where userId = 1 and userName LIKE %foo%;
    let { inserted, rows } = await session.factory('foo').insert({ field1: 'bar', field2: 'baz' }).save();
                             await session.factory('foo').insert({ field1: 'bar', field2: 'baz' }).insert({ field1: 'bar1' }).save();
    // insert data to table foo
    let { affected } = await session.factory('foo',{ barId = 2 }).set({ baz: 'bar' }).save();
    // edit record on field barId = 2

    let data = await session.factory('foo').delete();
    //delete data;
  
    console.log('Great, we have new friend');

    let newFriend = await session.factory('friend').single();

    await session.close();
  } catch (err) {
    console.error(err);
  }

  await session.dispose();

  // or

  manager.runSession((session) => {
    let friend = { first_name: 'John', last_name: 'Doe' };

    await session.factory('friend').insert(friend).save();

    console.log('Great, we have new friend');

    let newFriend = await session.factory('friend').single();
  });
})();

Documentation

1.4.7

3 years ago

1.4.5

4 years ago

1.4.4

4 years ago

1.4.3

4 years ago

1.4.2

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.21

5 years ago

1.2.20

5 years ago

1.2.19

5 years ago

1.2.18

5 years ago

1.2.17

5 years ago

1.2.16

5 years ago

1.2.15

5 years ago

1.2.14

6 years ago

1.2.13

6 years ago

1.2.12

6 years ago

1.2.11

6 years ago

1.2.10

6 years ago

1.2.9

6 years ago

1.2.8

6 years ago

1.2.7

6 years ago

1.2.6

6 years ago

1.2.5

6 years ago

1.2.4

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago

0.6.2

6 years ago

0.6.1

6 years ago

0.6.0

7 years ago

0.5.0

7 years ago

0.4.0

7 years ago

0.3.5

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

9 years ago