forked from kreetitech/RDX
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
57 lines (41 loc) · 1.58 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
RDX
========
A simple ORM for Node.js.
Currently only supports mysql-libmysqlclient: https://github.com/Sannis/node-mysql-libmysqlclient
Usage
-----
Here is some example usage using the test database present in tests/fixtures/db_schema.sql:
var rdx = require('rdx')
var cfg = { adapter: 'mysql-libmysqlclient',
host: "localhost",
database: "test",
};
var cp = new rdx.ConnectionPool(cfg);
var User = new rdx.Model(cp, 'users');
var Collection = new rdx.Model(cp, 'collections');
var Item = new rdx.Model(cp, 'items');
User.toMany('collections', Collection, Collection.fields["user_id"]);
Collection.belongsTo('user', Collection.fields["user_id"], User);
Collection.toMany('items', Item, Item.fields['collection_id']);
Item.belongsTo('collections',Item.fields["collection_id"], Collection);
u = User.create({email: "a@b", user_type: 0}, false)
u.destroySync()
u = User.find("1", false)
u.collections.findOne(false).user.findOne(false)
u = User.where('id = 1').findOne(false);
User.find("1", function(err, res) { console.log(res); });
u.collections.where("name like '%book'").all(function(err, res) { console.log(res); })
Installation
------------
Here is how you can install RDX:
npm install rdx
Contributing
------------
Contributions to this project are most welcome, so feel free to fork, improve and submit pull requests.
The test suite requires nodeunit https://github.com/caolan/nodeunit and can be run using the command
node test.js
TODO
------------
* Add tests for object creation, updation, deletion, etc.
* Better error handling
* SQL escaping, improve where clause