beech-api 3.4.12 → 3.5.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -16
- package/package.json +15 -9
- package/packages/cli/beech +2 -2
- package/packages/cli/bin/beech-service.js +305 -0
- package/packages/cli/bin/beech.js +133 -66
- package/packages/cli/core/auth/Credentials.js +34 -1
- package/packages/cli/core/auth/Passport.js +215 -88
- package/packages/cli/core/configure/{app.config.js → app.config-basic.js} +4 -4
- package/packages/cli/core/configure/app.config-sequelize.js +89 -0
- package/packages/cli/core/configure/global.config-basic.js +9 -0
- package/packages/cli/core/configure/global.config-sequelize.js +9 -0
- package/packages/cli/core/configure/passport.config.js +4 -4
- package/packages/cli/core/databases/{mysql.connection.js → mysql.js} +12 -11
- package/packages/cli/core/databases/sequelize.js +149 -0
- package/packages/cli/core/generator/_basic-helpers +23 -0
- package/packages/cli/core/generator/_basic-models +25 -0
- package/packages/cli/core/generator/{endpoints → _endpoints} +5 -5
- package/packages/cli/core/generator/_helpers +10 -0
- package/packages/cli/core/generator/_models +23 -0
- package/packages/cli/core/generator/{package → _package} +2 -2
- package/packages/cli/core/generator/_service +8 -0
- package/packages/cli/core/generator/index.js +91 -24
- package/packages/cli/core/index.js +11 -4
- package/packages/cli/core/services/http.express.js +17 -15
- package/packages/lib/beech.js +90 -26
- package/packages/package.json +20 -0
- package/packages/public/icon/beech_128.png +0 -0
- package/packages/src-/Add-on.js +9 -0
- package/packages/src-/endpoints/hello-endpoints.js +118 -0
- package/packages/src-/endpoints/test2-endpoints.js +75 -0
- package/packages/src-/endpoints/testSequalize-endpoints.js +23 -0
- package/packages/src-/helpers/my/Test.js +11 -0
- package/packages/src-/helpers/my/Test2.js +11 -0
- package/packages/src-/helpers/my/Test3.js +11 -0
- package/packages/src-/helpers/my/Test4.js +11 -0
- package/packages/src-/models/Jubu.js +29 -0
- package/packages/src-/models/Jubu2.js +20 -0
- package/packages/src-/models/Map_master.js +22 -0
- package/packages/{cli/core/generator/models → src-/models/Test.js} +1 -1
- package/packages/src-/models/Test2.js +29 -0
- package/packages/src-/models/User2Sequelize.js +23 -0
- package/packages/src-/models/Users-sqlite.js +21 -0
- package/packages/src-/models/Users.js +53 -0
- package/packages/src-/models/Uuuuuxxx.js +23 -0
- package/packages/src-/models/xxx/Uuuuuxxx.js +23 -0
- package/packages/cli/core/configure/global.config.js +0 -7
- /package/packages/cli/core/configure/{gitignore → _gitignore} +0 -0
- /package/packages/cli/core/configure/{sequelizerc → _sequelizerc} +0 -0
- /package/packages/cli/core/generator/{add-on → _add-on} +0 -0
- /package/packages/cli/core/generator/{create → _create} +0 -0
- /package/packages/cli/core/generator/{help → _help} +0 -0
- /package/packages/cli/core/generator/{spec → _spec} +0 -0
- /package/packages/{cli/core/generator/helpers → src-/helpers/Test2.js} +0 -0
package/packages/lib/beech.js
CHANGED
|
@@ -4,52 +4,94 @@ const md5 = require("md5");
|
|
|
4
4
|
const secret = require("./salt").salt;
|
|
5
5
|
|
|
6
6
|
module.exports = {
|
|
7
|
-
findOne(
|
|
7
|
+
async findOne(fields, fieldCondArr, cb) {
|
|
8
8
|
try {
|
|
9
|
+
let stm = '';
|
|
9
10
|
let cond = '1';
|
|
10
|
-
let
|
|
11
|
+
let table = await [passport_config.model.table || "users"];
|
|
12
|
+
let passportFields = await (fields[0]) ? fields : (passport_config.model.fields.length) ? passport_config.model.fields : ["id", "name", "email"];
|
|
13
|
+
const pool = await eval("sql." + passport_config.model.name);
|
|
11
14
|
// Generate condition
|
|
12
|
-
Object.keys(fieldCondArr).forEach(key => {
|
|
15
|
+
await Object.keys(fieldCondArr).forEach(key => {
|
|
13
16
|
cond += ' AND ' + key + '=' + fieldCondArr[key]
|
|
14
17
|
});
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
// check base pool
|
|
19
|
+
if (pool_base == "basic") {
|
|
20
|
+
// pool base is MySQL
|
|
21
|
+
stm += 'SELECT ?? FROM ?? WHERE ' + cond;
|
|
22
|
+
await pool.query(stm, [passportFields, table], (err, row) => {
|
|
23
|
+
cb(err, row);
|
|
24
|
+
});
|
|
25
|
+
} else if (pool_base == "sequelize") {
|
|
26
|
+
// pool base is Sequelize
|
|
27
|
+
try {
|
|
28
|
+
stm += `SELECT ${passportFields} FROM ${table} WHERE ` + cond;
|
|
29
|
+
let result = await pool.query(stm, {
|
|
30
|
+
type: QueryTypes.SELECT
|
|
31
|
+
});
|
|
32
|
+
return cb(null, result);
|
|
33
|
+
} catch (error) {
|
|
34
|
+
return cb(error, null);
|
|
35
|
+
}
|
|
36
|
+
} else {
|
|
37
|
+
return cb({ error: "Base pool SQL error." }, null);
|
|
38
|
+
}
|
|
21
39
|
} catch (error) {
|
|
22
40
|
cb(error, null);
|
|
23
41
|
}
|
|
24
42
|
},
|
|
25
|
-
store(fields, cb) {
|
|
43
|
+
async store(fields, cb) {
|
|
26
44
|
try {
|
|
45
|
+
let stm = '';
|
|
27
46
|
let keys = [];
|
|
28
|
-
let values = [passport_config.model.table || "users"];
|
|
29
47
|
let escaped = [];
|
|
30
|
-
let
|
|
48
|
+
let values = await [passport_config.model.table || "users"];
|
|
49
|
+
let passwordField = await String(passport_config.model.password_field || "password");
|
|
50
|
+
const pool = await eval("sql." + passport_config.model.name);
|
|
31
51
|
// asign password hash
|
|
32
52
|
fields[passwordField] = md5(fields[passwordField] + secret);
|
|
33
53
|
// sql generate
|
|
34
|
-
Object.keys(fields).forEach(key => {
|
|
54
|
+
await Object.keys(fields).forEach(key => {
|
|
35
55
|
keys.push(key);
|
|
36
56
|
values.push(fields[key]);
|
|
37
57
|
escaped.push('?');
|
|
38
58
|
});
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
59
|
+
// check base pool
|
|
60
|
+
if (pool_base == "basic") {
|
|
61
|
+
// pool base is MySQL
|
|
62
|
+
stm += 'INSERT INTO ?? (' + keys.join() + ') VALUES (' + escaped.join() + ')';
|
|
63
|
+
await pool.query(stm, values, (err, result) => {
|
|
64
|
+
cb(err, result);
|
|
65
|
+
});
|
|
66
|
+
} else if (pool_base == "sequelize") {
|
|
67
|
+
// pool base is Sequelize
|
|
68
|
+
try {
|
|
69
|
+
stm += `INSERT INTO ${values.shift()} (` + keys.join() + ') VALUES (' + escaped.join() + ')';
|
|
70
|
+
let result = await pool.query(stm, {
|
|
71
|
+
replacements: values,
|
|
72
|
+
type: QueryTypes.INSERT
|
|
73
|
+
});
|
|
74
|
+
return cb(null, {
|
|
75
|
+
insertId: result[0],
|
|
76
|
+
affectedRows: result[1]
|
|
77
|
+
});
|
|
78
|
+
} catch (error) {
|
|
79
|
+
return cb(error, null);
|
|
80
|
+
}
|
|
81
|
+
} else {
|
|
82
|
+
return cb({ error: "Base pool SQL error." }, null);
|
|
83
|
+
}
|
|
44
84
|
} catch (error) {
|
|
45
85
|
cb(error, null);
|
|
46
86
|
}
|
|
47
87
|
},
|
|
48
|
-
update(someFields, id, cb) {
|
|
88
|
+
async update(someFields, id, cb) {
|
|
49
89
|
try {
|
|
90
|
+
let stm = '';
|
|
50
91
|
let keys = [];
|
|
51
|
-
let values = [passport_config.model.table || "users"];
|
|
52
|
-
let passwordField = String(passport_config.model.password_field || "password");
|
|
92
|
+
let values = await [passport_config.model.table || "users"];
|
|
93
|
+
let passwordField = await String(passport_config.model.password_field || "password");
|
|
94
|
+
const pool = await eval("sql." + passport_config.model.name);
|
|
53
95
|
// check password body for asign hash
|
|
54
96
|
if (someFields[passwordField]) {
|
|
55
97
|
someFields[passwordField] = md5(someFields[passwordField] + secret);
|
|
@@ -60,11 +102,33 @@ module.exports = {
|
|
|
60
102
|
values.push(someFields[key]);
|
|
61
103
|
});
|
|
62
104
|
values.push(id);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
105
|
+
// check base pool
|
|
106
|
+
if (pool_base == "basic") {
|
|
107
|
+
// pool base is MySQL
|
|
108
|
+
stm += 'UPDATE ?? SET ' + keys.join() + ' WHERE id = ?';
|
|
109
|
+
await pool.query(stm, values, (err, result) => {
|
|
110
|
+
cb(err, result);
|
|
111
|
+
});
|
|
112
|
+
} else if (pool_base == "sequelize") {
|
|
113
|
+
// pool base is Sequelize
|
|
114
|
+
try {
|
|
115
|
+
stm += `UPDATE ${values.shift()} SET ` + keys.join() + ' WHERE id = ?';
|
|
116
|
+
console.log(stm, values);
|
|
117
|
+
let result = await pool.query(stm, {
|
|
118
|
+
replacements: values,
|
|
119
|
+
type: QueryTypes.UPDATE
|
|
120
|
+
});
|
|
121
|
+
return cb(null, {
|
|
122
|
+
updateId: parseInt(id),
|
|
123
|
+
affectedRows: result[1]
|
|
124
|
+
});
|
|
125
|
+
} catch (error) {
|
|
126
|
+
return cb(error, null);
|
|
127
|
+
}
|
|
128
|
+
} else {
|
|
129
|
+
return cb({ error: "Base pool SQL error." }, null);
|
|
130
|
+
}
|
|
131
|
+
|
|
68
132
|
} catch (error) {
|
|
69
133
|
cb(error, null);
|
|
70
134
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "application",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "The project is powered by Beech API framework",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"start": "npx run ./node_modules/beech-api/packages/cli/beech",
|
|
8
|
+
"test": "node ./node_modules/jest/bin/jest __tests__ -o --watch --config"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"beech-api": "^3.5.11",
|
|
12
|
+
"nodemon": "^3.0.1",
|
|
13
|
+
"sqlite3": "^5.0.11",
|
|
14
|
+
"tedious": "^15.0.1"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"jest": "^25.2.7",
|
|
18
|
+
"sequelize-cli": "^5.5.1"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
const Beech = require("../../lib/beech");
|
|
2
|
+
const Users = require("@/models/Users");
|
|
3
|
+
const Users2 = require("@/models/Users-sqlite");
|
|
4
|
+
const User2Sequelize = require("@/models/User2Sequelize");
|
|
5
|
+
const Map_master = require("@/models/Map_master");
|
|
6
|
+
|
|
7
|
+
exports.init = () => {
|
|
8
|
+
// Initiate with basic request currently support GET, POST, PUT, PATCH and DELETE
|
|
9
|
+
|
|
10
|
+
/@GET/
|
|
11
|
+
endpoint.get('/hello', Credentials, async (req, res) => {
|
|
12
|
+
// basic get method
|
|
13
|
+
let data = {};
|
|
14
|
+
data.code = 200;
|
|
15
|
+
data.message = 'Got a GET request.';
|
|
16
|
+
|
|
17
|
+
/* await Users.findAll().then(e=> {
|
|
18
|
+
data.results = e
|
|
19
|
+
}); */
|
|
20
|
+
|
|
21
|
+
let fields = {
|
|
22
|
+
username: "eiei",
|
|
23
|
+
password: "xxx",
|
|
24
|
+
email: "bomb@bomb.com",
|
|
25
|
+
name: "jubu eiei"
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/* Beech.store(fields, (err, result) => {
|
|
30
|
+
if(err) {
|
|
31
|
+
console.log(err);
|
|
32
|
+
} else {
|
|
33
|
+
console.log(result);
|
|
34
|
+
}
|
|
35
|
+
}); */
|
|
36
|
+
|
|
37
|
+
/* await Beech.findOne([], { id: 66 }, (err, result) => {
|
|
38
|
+
data.result = result
|
|
39
|
+
}) */
|
|
40
|
+
|
|
41
|
+
/* Beech.update({ username: "eiei", name: 'eiei222' }, 69, (err, result) => {
|
|
42
|
+
console.log(result);
|
|
43
|
+
}) */
|
|
44
|
+
|
|
45
|
+
data.result = await Users2.findAll(); // basic
|
|
46
|
+
//data.results = await User2Sequelize.findAll(); // sequelize
|
|
47
|
+
//data.results = await User2Sequelize.findUser2SequelizeById(7) // sequelize
|
|
48
|
+
|
|
49
|
+
//data.results = await Map_master.findAll() // sequelize
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
// @return
|
|
56
|
+
res.json(data);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
/@POST/
|
|
60
|
+
endpoint.post('/hello', Credentials, (req, res) => {
|
|
61
|
+
/**
|
|
62
|
+
* @param Integer id
|
|
63
|
+
*
|
|
64
|
+
* @return json
|
|
65
|
+
*/
|
|
66
|
+
let id = req.body.id;
|
|
67
|
+
let data = {};
|
|
68
|
+
data.code = 200;
|
|
69
|
+
data.message = 'Got a POST request.';
|
|
70
|
+
// @return
|
|
71
|
+
res.json(data);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
/@PUT/
|
|
75
|
+
endpoint.put('/hello/:id', Credentials, (req, res) => {
|
|
76
|
+
/**
|
|
77
|
+
* @param Integer id
|
|
78
|
+
*
|
|
79
|
+
* @return json
|
|
80
|
+
*/
|
|
81
|
+
let id = req.params.id;
|
|
82
|
+
let data = {};
|
|
83
|
+
data.code = 200;
|
|
84
|
+
data.message = 'Got a PUT request at /hello/' + id;
|
|
85
|
+
// @return
|
|
86
|
+
res.json(data);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
/@PATCH/
|
|
90
|
+
endpoint.patch('/hello/:id', Credentials, (req, res) => {
|
|
91
|
+
/**
|
|
92
|
+
* @param Integer id
|
|
93
|
+
*
|
|
94
|
+
* @return json
|
|
95
|
+
*/
|
|
96
|
+
let id = req.params.id;
|
|
97
|
+
let data = {};
|
|
98
|
+
data.code = 200;
|
|
99
|
+
data.message = 'Got a PATCH request at /hello/' + id;
|
|
100
|
+
// @return
|
|
101
|
+
res.json(data);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
/@DELETE/
|
|
105
|
+
endpoint.delete('/hello/:id', Credentials, (req, res) => {
|
|
106
|
+
/**
|
|
107
|
+
* @param Integer id
|
|
108
|
+
*
|
|
109
|
+
* @return json
|
|
110
|
+
*/
|
|
111
|
+
let id = req.params.id;
|
|
112
|
+
let data = {};
|
|
113
|
+
data.code = 200;
|
|
114
|
+
data.message = 'Got a DELETE request at /hello/' + id;
|
|
115
|
+
// @return
|
|
116
|
+
res.json(data);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// You can require something
|
|
2
|
+
|
|
3
|
+
exports.init = () => {
|
|
4
|
+
// Initiate with basic request currently support GET, POST, PUT, PATCH and DELETE
|
|
5
|
+
|
|
6
|
+
/@GET/
|
|
7
|
+
endpoint.get('/test2', Credentials, (req, res) => {
|
|
8
|
+
// basic get method
|
|
9
|
+
let data = {};
|
|
10
|
+
data.code = 200;
|
|
11
|
+
data.message = 'Got a GET request.';
|
|
12
|
+
// @return
|
|
13
|
+
res.json(data);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
/@POST/
|
|
17
|
+
endpoint.post('/test2', Credentials, (req, res) => {
|
|
18
|
+
/**
|
|
19
|
+
* @param Integer id
|
|
20
|
+
*
|
|
21
|
+
* @return json
|
|
22
|
+
*/
|
|
23
|
+
let id = req.body.id;
|
|
24
|
+
let data = {};
|
|
25
|
+
data.code = 200;
|
|
26
|
+
data.message = 'Got a POST request.';
|
|
27
|
+
// @return
|
|
28
|
+
res.json(data);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
/@PUT/
|
|
32
|
+
endpoint.put('/test2/:id', Credentials, (req, res) => {
|
|
33
|
+
/**
|
|
34
|
+
* @param Integer id
|
|
35
|
+
*
|
|
36
|
+
* @return json
|
|
37
|
+
*/
|
|
38
|
+
let id = req.params.id;
|
|
39
|
+
let data = {};
|
|
40
|
+
data.code = 200;
|
|
41
|
+
data.message = 'Got a PUT request at /test2/' + id;
|
|
42
|
+
// @return
|
|
43
|
+
res.json(data);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
/@PATCH/
|
|
47
|
+
endpoint.patch('/test2/:id', Credentials, (req, res) => {
|
|
48
|
+
/**
|
|
49
|
+
* @param Integer id
|
|
50
|
+
*
|
|
51
|
+
* @return json
|
|
52
|
+
*/
|
|
53
|
+
let id = req.params.id;
|
|
54
|
+
let data = {};
|
|
55
|
+
data.code = 200;
|
|
56
|
+
data.message = 'Got a PATCH request at /test2/' + id;
|
|
57
|
+
// @return
|
|
58
|
+
res.json(data);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
/@DELETE/
|
|
62
|
+
endpoint.delete('/test2/:id', Credentials, (req, res) => {
|
|
63
|
+
/**
|
|
64
|
+
* @param Integer id
|
|
65
|
+
*
|
|
66
|
+
* @return json
|
|
67
|
+
*/
|
|
68
|
+
let id = req.params.id;
|
|
69
|
+
let data = {};
|
|
70
|
+
data.code = 200;
|
|
71
|
+
data.message = 'Got a DELETE request at /test2/' + id;
|
|
72
|
+
// @return
|
|
73
|
+
res.json(data);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const Users = require("@/models/Users");
|
|
2
|
+
const Test = require("@/models/Test");
|
|
3
|
+
|
|
4
|
+
exports.init = () => {
|
|
5
|
+
// Initiate with basic request currently support GET, POST, PUT, PATCH and DELETE
|
|
6
|
+
|
|
7
|
+
/@GET/
|
|
8
|
+
endpoint.get('/testSequalize', Credentials, async (req, res) => {
|
|
9
|
+
|
|
10
|
+
let data = {};
|
|
11
|
+
data.code = 200;
|
|
12
|
+
|
|
13
|
+
data.results = await Users.getData();
|
|
14
|
+
|
|
15
|
+
data.resultTest = await Test.getData();
|
|
16
|
+
|
|
17
|
+
// @return
|
|
18
|
+
res.json(data);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const data = [
|
|
2
|
+
{ "id": 1, "name": "Oggy" },
|
|
3
|
+
{ "id": 2, "name": "Jack" },
|
|
4
|
+
{ "id": 3, "name": "The Cockroaches Gang" }
|
|
5
|
+
];
|
|
6
|
+
|
|
7
|
+
module.exports = {
|
|
8
|
+
|
|
9
|
+
// Example basic function get constant data
|
|
10
|
+
getData() {
|
|
11
|
+
return data;
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
// Example basic function get data from Database (must be return promise)
|
|
15
|
+
findAll() {
|
|
16
|
+
return new Promise((resolve, reject) => {
|
|
17
|
+
try {
|
|
18
|
+
// call mysql `default_db` connection
|
|
19
|
+
mysql.default_db.query("SELECT * FROM jubu", (err, results) => {
|
|
20
|
+
if (err) { reject(err) }
|
|
21
|
+
resolve(results);
|
|
22
|
+
});
|
|
23
|
+
} catch (error) {
|
|
24
|
+
reject(error);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// You can asign datatype see more: https://sequelize.org/docs/v6/core-concepts/model-basics/#data-types
|
|
2
|
+
const Jubu2 = sql.default_db.define("jubu2", {
|
|
3
|
+
id: DataTypes.INTEGER,
|
|
4
|
+
examField1: DataTypes.STRING,
|
|
5
|
+
examField2: DataTypes.DATE,
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
module.exports = {
|
|
9
|
+
|
|
10
|
+
// Example basic function get one constant data
|
|
11
|
+
async getJubu2ById(id) {
|
|
12
|
+
return await Jubu2.findOne({ where: { id: id } });
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
// Example basic function get all data from Database (must be return promise)
|
|
16
|
+
async findAll() {
|
|
17
|
+
return await Jubu2.findAll();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// You can asign datatype see more: https://sequelize.org/docs/v6/core-concepts/model-basics/#data-types
|
|
2
|
+
const Map_master = sql.mysql_first_db.define("map_master", {
|
|
3
|
+
id: {
|
|
4
|
+
type: DataTypes.INTEGER,
|
|
5
|
+
autoIncrement: true,
|
|
6
|
+
primaryKey: true
|
|
7
|
+
},
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
module.exports = {
|
|
11
|
+
|
|
12
|
+
// Example basic function get one constant data
|
|
13
|
+
async findMap_masterById(id) {
|
|
14
|
+
return await Map_master.findOne({ where: { id: id } });
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
// Example basic function get all data from Database (must be return promise)
|
|
18
|
+
async findAll() {
|
|
19
|
+
return await Map_master.findAll();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
}
|
|
@@ -16,7 +16,7 @@ module.exports = {
|
|
|
16
16
|
return new Promise((resolve, reject) => {
|
|
17
17
|
try {
|
|
18
18
|
// call mysql `default_db` connection
|
|
19
|
-
mysql.default_db.query("SELECT * FROM
|
|
19
|
+
mysql.default_db.query("SELECT * FROM test", (err, results) => {
|
|
20
20
|
if (err) { reject(err) }
|
|
21
21
|
resolve(results);
|
|
22
22
|
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const data = [
|
|
2
|
+
{ "id": 1, "name": "Oggy" },
|
|
3
|
+
{ "id": 2, "name": "Jack" },
|
|
4
|
+
{ "id": 3, "name": "The Cockroaches Gang" }
|
|
5
|
+
];
|
|
6
|
+
|
|
7
|
+
module.exports = {
|
|
8
|
+
|
|
9
|
+
// Example basic function get constant data
|
|
10
|
+
getData() {
|
|
11
|
+
return data;
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
// Example basic function get data from MySQL (must be return promise)
|
|
15
|
+
findAll() {
|
|
16
|
+
return new Promise((resolve, reject) => {
|
|
17
|
+
try {
|
|
18
|
+
// call mysql `default_db` connection
|
|
19
|
+
mysql.default_db.query("SELECT * FROM test2", (err, results) => {
|
|
20
|
+
if (err) { reject(err) }
|
|
21
|
+
resolve(results);
|
|
22
|
+
});
|
|
23
|
+
} catch (error) {
|
|
24
|
+
reject(error);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// You can asign datatype see more: https://sequelize.org/docs/v6/core-concepts/model-basics/#data-types
|
|
2
|
+
const User2Sequelize = sql.mysql_first_db.define("users", {
|
|
3
|
+
id: {
|
|
4
|
+
type: DataTypes.INTEGER,
|
|
5
|
+
autoIncrement: true,
|
|
6
|
+
primaryKey: true
|
|
7
|
+
},
|
|
8
|
+
name: DataTypes.STRING,
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
module.exports = {
|
|
12
|
+
|
|
13
|
+
// Example basic function get one constant data
|
|
14
|
+
async findUser2SequelizeById(id) {
|
|
15
|
+
return await User2Sequelize.findOne({ where: { 'id': id } });
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
// Example basic function get all data from Database (must be return promise)
|
|
19
|
+
async findAll() {
|
|
20
|
+
return await User2Sequelize.findAll();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const Users = sql.sqlite_db.define("users", {
|
|
2
|
+
id: {
|
|
3
|
+
type: DataTypes.INTEGER,
|
|
4
|
+
autoIncrement: true,
|
|
5
|
+
primaryKey: true
|
|
6
|
+
},
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
module.exports = {
|
|
10
|
+
|
|
11
|
+
// Example basic function get one constant data
|
|
12
|
+
findUsersById(id) {
|
|
13
|
+
return Users.findOne({ where: { id: id } });
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
// Example basic function get all data from table users
|
|
17
|
+
findAll() {
|
|
18
|
+
return Users.findAll();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// You can asign datatype see more: https://sequelize.org/docs/v6/core-concepts/model-basics/#data-types
|
|
2
|
+
const Users = sql.mysql_first_db.define('users', {
|
|
3
|
+
id: {
|
|
4
|
+
type: DataTypes.INTEGER,
|
|
5
|
+
autoIncrement: true,
|
|
6
|
+
primaryKey: true
|
|
7
|
+
},
|
|
8
|
+
username: DataTypes.STRING,
|
|
9
|
+
password: {
|
|
10
|
+
type: DataTypes.STRING,
|
|
11
|
+
set(value) {
|
|
12
|
+
// Storing passwords in plaintext in the database is terrible.
|
|
13
|
+
// Hashing the value with an appropriate cryptographic hash function is better.
|
|
14
|
+
this.setDataValue('password', hash(value));
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
name: DataTypes.STRING,
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
module.exports = {
|
|
23
|
+
|
|
24
|
+
// Example basic function get constant data
|
|
25
|
+
getData() {
|
|
26
|
+
let user = Users.findAll();
|
|
27
|
+
//console.log(user);
|
|
28
|
+
return user;
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
// Example basic function get data from MySQL (must be return promise)
|
|
32
|
+
findAll() {
|
|
33
|
+
return new Promise(async (resolve, reject) => {
|
|
34
|
+
try {
|
|
35
|
+
|
|
36
|
+
let raw = await sql.default_db.query("SELECT * FROM users LIMIT 1", { type: QueryTypes.SELECT }); // mysql
|
|
37
|
+
//let raw = await sql.second_db.query("SELECT * FROM usercon LIMIT 10"); // sqlite
|
|
38
|
+
// let raw = await this.sql.thirdth_db.query("SELECT TOP 10 * FROM usercon"); // mssql
|
|
39
|
+
|
|
40
|
+
//console.log(sql);
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
resolve(raw);
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
} catch (error) {
|
|
48
|
+
reject(error);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
}
|