dk-db v0.1.3
DK-db
DK database - library for working with database.
Examples
| Used code: TypeScript
db_new
Connect in server and make / update record
Ex_1
import {err_is, Err_s, err_throw} from "dk-err";
import {num_1u, num_new} from "dk-num";
import {str_make, str_new} from "dk-str";
import {Db_s, db_table, Db_table, db_table_rec, db_tables} from "./main";
import {db_new} from "./new";
export const main = () => {
// make pointer DB connection (create the database manually)
const db: Db_s = db_new({
name: str_make("test"),
}); // DB connected true - 80 ms (mysql://root:***@localhost/test)
// make pointer Table
const table: Db_table = db_table(db, {
name : str_make("table_example"),
uniqueLs: [
str_new(num_1u(1, 2), "unique", "unique_2"),
],
fields : [
{
name: str_make("unique"),
type: str_make("integer"),
size: num_1u(1, 4),
}, {
name: str_make("unique_2"),
type: str_make("integer"),
size: num_1u(1, 4),
}, {
name: str_make("data"),
type: str_make("text"),
size: num_new(2, 1, 20000), // varchar(20000)
},
],
});
// create all tables
const err: Err_s = db_tables(db);
if (err !== undefined) {
err_throw(err);
}
// record create
const rec_1 = db_table_rec(table, [
{
name: str_make("data"),
val : str_make("Record data"),
}, {
name: str_make("unique"),
val : str_make("1"),
}, {
name: str_make("unique_2"),
val : str_make("1"),
},
]);
// check error
if (err_is(rec_1)) {
err_throw(rec_1); // throw
}
// record update
const rec_2 = db_table_rec(table, [
{
name: str_make("id"),
val : str_make("1"),
}, {
name: str_make("data"),
val : str_make("Record update2"),
}, {
name: str_make("unique"),
val : str_make("2"),
},
]);
// check error
if (err_is(rec_2)) {
err_throw(rec_2);
}
// Print id records
console.log(
"rec_1.id = %s, rec_2.id = %s", rec_1.id, rec_2.id,
); // rec_1.id = 1, rec_2.id = 1
};
main();
Api
Types
Db
Db_o
Field | Type | Default | Desc |
---|---|---|---|
type | Str_s | DB_CONNECT_TYPE | Type server |
host | Str_s | DB_CONNECT_HOST | Server host |
port | Num_s | DB_CONNECT_PORT | Server port |
name | Str_s | DB_CONNECT_NAME | Database name |
user | Str_s | DB_CONNECT_USER | Database user |
password | Str_s | DB_CONNECT_PASSWORD | Database password |
timeout | Num_s | DB_CONNECT_TIMEOUT | Max connection timeout |
findRecords | Num_s | DB_FIND_LIMIT | Limit list |
findTimeout | Time_s | DB_FIND_TIMEOUT | Max get find timeout |
recTimeout | Time_s | DB_REC_TIMEOUT | Max get record timeout |
tableTimeout | Time_s | DB_TABLE_TIMEOUT | Max timeout creating table |
Db_s
Field | Type | Value |
---|---|---|
type | Str_s | Db_o.type |
host | Str_s | Db_o.host |
port | Num_s | Db_o.port |
name | Str_s | Db_o.name |
user | Str_s | Db_o.user |
password | Str_s | Db_o.password |
timeout | Time_s | Db_o.timeout |
findRecords | Num_s | Db_o.findRecords |
findTimeout | Time_s | Db_o.findTimeout |
recTimeout | Time_s | Db_o.recTimeout |
tableTimeout | Time_s | Db_o.tableTimeout |
orm | any | Db_o.orm |
Table
Db_table_opt
Field | Type | Desc |
---|---|---|
name | Str_s | Table name |
fields | Db_fields | Fields list |
uniqueLs | Db_table_ls_unique | Unique list (name field) |
Db_table
Field | Type | Desc |
---|---|---|
db | Db_s | Pointer on DB |
orm | any | Orm table object |
name | Str_s | Db_table_opt.name |
fields | Db_fields | Db_table_opt.fields |
uniqueLs | Str_s | Db_table_opt.uniqueLs |
Db_table_ls_unique => Array<Str_s>
List unique group (Str_s)
Db_tables => Array<Db_table>
List Db_table
Field
Db_field
Field | Type | Desc |
---|---|---|
name | Str_s | Name |
type | Str_s | Type: integer, text |
size | Num_s | Size 1-65555 |
val | Str_s | Value |
Db_fields => Array<Db_field>
Constants
Default library
Name | Type | Value | Desc |
---|---|---|---|
DB_NAME | Str_std | DK-db | Name library |
DB_KEY | Str_std | db | Key library |
DB_ID | Any_id | 0 | Id library |
DB_VER | Str_std | 0.2.0-0.1 | Version library |
Connection default
Name | Type | Value | Desc |
---|---|---|---|
DB_CONNECT_TYPE | Str_std | mysql | Server type |
DB_CONNECT_HOST | Str_std | localhost | Server host |
DB_CONNECT_PORT | Num_std | 3306 | Server port |
DB_CONNECT_USER | Str_std | root | User name |
DB_CONNECT_NAME | Str_std | db | Database name |
DB_CONNECT_PASSWORD | Str_std | "" | User password |
DB_CONNECT_TIMEOUT | Num_std | 10 | Timeout connection |
Record default
Name | Type | Value | Desc |
---|---|---|---|
DB_REC_TIMEOUT | Num_std | 3 | Timeout get record |
Find default
Name | Type | Value | Desc |
---|---|---|---|
DB_FIND_TIMEOUT | Num_std | 5 | Timeout find |
DB_FIND_LIMIT | Num_std | 100 | Limit list |
Fields
Name | Type | Value | Desc |
---|---|---|---|
DB_FIELD_ID | Str_std | id | Primary (AUTO_INCREMENT) |
DB_FIELD_CREATED | Str_std | _created | Created record |
DB_FIELD_UPDATED | Str_std | _updated | Updated record |
Table
Name | Type | Value | Desc |
---|---|---|---|
DB_TABLE_FIELD_CREATED | boolean | true | Make field "_created" |
DB_TABLE_FIELD_UPDATED | boolean | true | Make field "_updated" |
Functions
db_new(opt: Db_o): Db_s
Create new structure Db_s and connection with server
db_table(db: Db_s, opt: Db_table_opt): Db_table
Create new table model by fields
db_tables(db: Db_s):void
Create tables if they do not exist
db_table_rec(table: Db_table, data: Db_fields)
Get / make record in table
db_table_find(table: Db_table, filter: any, offset: Num_s):Array
Search records in table
| filter - orm filter (where)
About
Notes
- Start of development: 2018-10-18 07:50
- This project adheres to Semantic Versioning
- This project used Node-ORM
License
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago