173 lines
5.5 KiB
Markdown
173 lines
5.5 KiB
Markdown
**WARNING!!!** It's a legacy version of current library! *Do not use in release product!!*
|
|
|
|
# SQLEasy.js
|
|
module for simple works from sqlite3 (JavaScript edition)
|
|
## Prepare for work (install from github)
|
|
Use npm from install in your project:
|
|
```bash
|
|
npm install sql-easy-lib
|
|
```
|
|
import database object in your project
|
|
``` javascript
|
|
const SQLEasy = require('sql-easy-lib');
|
|
var database = new SQLEasy.database('/path/to/database.db');
|
|
```
|
|
This object have 4 methods: add, remove, set, get
|
|
## Prepare for work (install from github)
|
|
My module use module **better-sqlite3**, you must download it.
|
|
```bash
|
|
npm install better-sqlite3
|
|
```
|
|
from next, you can download folder of project, and load in folder "node_modules"
|
|
``` bash
|
|
cd node_modules
|
|
git clone https://github.com/Nikiroy78/SQLEasy.js.git
|
|
```
|
|
import database object in your project
|
|
``` javascript
|
|
const SQLEasy = require('SQLEasy.js');
|
|
var database = new SQLEasy.database('/path/to/database.db');
|
|
```
|
|
This object have 4 methods: add, remove, set, get
|
|
## Methods of SQLEasy object
|
|
### get
|
|
This method getting date from included database
|
|
```javascript
|
|
const sqlite = require('SQLEasy.js');
|
|
var database = sqlite.database('/path/to/database.db');
|
|
|
|
console.log(database.get('table'));
|
|
```
|
|
output...
|
|
``` javascript
|
|
[{'ID': 0, 'content': 'content 1'}, {'ID': 1, 'content': 'other content'}, {'ID': 2, 'content': 'Content number 3 :)'}, {'ID': 3, 'content': 'etc.'}]
|
|
```
|
|
|
|
You can apply condition's settings from filt your data...
|
|
```javascript
|
|
const sqlite = require('SQLEasy.js');
|
|
var database = sqlite.database('/path/to/database.db');
|
|
|
|
console.log(database.get('table', [{'ID': 0}, {'content': 'etc.'}]));
|
|
```
|
|
output...
|
|
``` javascript
|
|
[{'ID': 0, 'content': 'content 1'}, {'ID': 3, 'content': 'etc.'}]
|
|
```
|
|
Response show is...
|
|
```SQL
|
|
SELECT * FROM table WHERE (ID=0) OR (content='etc.')
|
|
```
|
|
And you edit uploaded columns
|
|
```javascript
|
|
const sqlite = require('SQLEasy.js');
|
|
var database = sqlite.database('/path/to/database.db');
|
|
|
|
console.log(database.get('table', [{'ID': 0}, {'content': 'etc.'}], 'content'));
|
|
```
|
|
output...
|
|
``` javascript
|
|
[{'content': 'content 1'}, {'content': 'etc.'}]
|
|
```
|
|
Response show is...
|
|
```SQL
|
|
SELECT content FROM table WHERE (ID=0) OR (content='etc.')
|
|
```
|
|
### add
|
|
This is sql response
|
|
```SQL
|
|
INSERT
|
|
```
|
|
Using add method in your code (from your simply, we used old date from last database).
|
|
```javascript
|
|
const sqlite = require('SQLEasy.js');
|
|
var database = sqlite.database('/path/to/database.db');
|
|
|
|
database.add('table', [{'ID': 4, 'content': 'test example, from fucking tests :)'}])
|
|
console.log(database.get('table'));
|
|
```
|
|
output...
|
|
```javascript
|
|
[{'ID': 0, 'content': 'content 1'}, {'ID': 1, 'content': 'other content'}, {'ID': 2, 'content': 'Content number 3 :)'}, {'ID': 3, 'content': 'etc.'}, {'ID': 4, 'content': 'test example, from fucking tests :)'}]
|
|
```
|
|
### remove
|
|
Using remove method in your code (from your simply, we used old date from last database).
|
|
```javascript
|
|
const sqlite = require('SQLEasy.js');
|
|
var database = sqlite.database('/path/to/database.db');
|
|
|
|
database.remove('table', {'ID': 4});
|
|
console.log(database.get('table'));
|
|
```
|
|
output...
|
|
```javascript
|
|
[{'ID': 0, 'content': 'content 1'}, {'ID': 1, 'content': 'other content'}, {'ID': 2, 'content': 'Content number 3 :)'}, {'ID': 3, 'content': 'etc.'}]
|
|
```
|
|
### set
|
|
Using set method in your code (from your simply, we used old date from last database).
|
|
```javascript
|
|
const sqlite = require('SQLEasy.js');
|
|
var database = sqlite.database('/path/to/database.db');
|
|
|
|
database.set('table', {'ID': 3}, {'content': 'edited'}); // First param - index key, found param - edit content...
|
|
console.log(database.get('table'));
|
|
```
|
|
output...
|
|
```javascript
|
|
[{'ID': 0, 'content': 'content 1'}, {'ID': 1, 'content': 'other content'}, {'ID': 2, 'content': 'Content number 3 :)'}, {'ID': 3, 'content': 'edited'}]
|
|
```
|
|
### execute
|
|
This is important method from execute your SQL script in your code.
|
|
Using method **execute** in test code (from your simply, we used old date from last database).
|
|
```javascript
|
|
const sqlite = require('SQLEasy.js');
|
|
var database = sqlite.database('/path/to/database');
|
|
|
|
var data = database.execute('SELECT * FROM table');
|
|
console.log(data);
|
|
```
|
|
output...
|
|
```javascript
|
|
[{'ID': 0, 'content': 'content 1'}, {'ID': 1, 'content': 'other content'}, {'ID': 2, 'content': 'Content number 3 :)'}, {'ID': 3, 'content': 'etc.'}]
|
|
```
|
|
### getIndex
|
|
Use this method from getting index value.
|
|
```javascript
|
|
const sqlite = require('SQLEasy.js');
|
|
var database = sqlite.database('/path/to/database.db');
|
|
|
|
console.log(database.get('table'));
|
|
console.log(database.getIndex('table', 'ID'));
|
|
```
|
|
output...
|
|
```javascript
|
|
[{'ID': 0, 'content': 'content 1'}, {'ID': 1, 'content': 'other content'}, {'ID': 3, 'content': 'Content number 3 :)'}, {'ID': 4, 'content': 'edited'}]
|
|
2
|
|
```
|
|
## Other functions that you can use in this module
|
|
### get_from_key
|
|
This function needs from works data in buffer.
|
|
The main advantage of this method is that you do not need to request data from the database every time, it is enough to use the data uploaded to memory:
|
|
```javascript
|
|
// Legacy method!
|
|
const sqlite = require('SQLEasy.js');
|
|
var database = sqlite.database('/path/to/database.db');
|
|
var rolesData = database.get('users').map(i => {
|
|
return {
|
|
user: i,
|
|
role_data: database.get('role', [{id: i.role}])
|
|
}
|
|
});
|
|
```
|
|
```javascript
|
|
// New method!
|
|
const sqlite = require('SQLEasy.js');
|
|
var database = sqlite.database('/path/to/database.db');
|
|
var roleData = database.get('role', [{id: i.role}]);
|
|
var rolesData = database.get('users').map(i => {
|
|
return {
|
|
user: i,
|
|
role_data: sqlite.get_from_key(roleData, [{id: i.role}])
|
|
}
|
|
});
|
|
``` |