@less-is-more/less-js 1.2.11 → 1.2.15
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/package.json +3 -2
- package/src/db.js +11 -5
- package/src/router.js +23 -5
- package/test/test-db.js +10 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@less-is-more/less-js",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.15",
|
|
4
4
|
"description": "Fast develop kit for nodejs",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
15
|
-
"url": "https://gitee.com/lim
|
|
15
|
+
"url": "https://gitee.com/shengapp/lim-js"
|
|
16
16
|
},
|
|
17
17
|
"author": "Less Is More",
|
|
18
18
|
"license": "MIT",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"ejs": "^3.1.6",
|
|
22
22
|
"fs-extra": "^10.0.0",
|
|
23
23
|
"inquirer": "^8.1.2",
|
|
24
|
+
"multiparty": "^4.2.2",
|
|
24
25
|
"mysql2": "^2.2.5",
|
|
25
26
|
"pg-hstore": "^2.3.3",
|
|
26
27
|
"querystring": "^0.2.1",
|
package/src/db.js
CHANGED
|
@@ -102,7 +102,7 @@ module.exports = class Db {
|
|
|
102
102
|
await this.add(model, nNewData);
|
|
103
103
|
} else {
|
|
104
104
|
let needUpdate = false;
|
|
105
|
-
if (
|
|
105
|
+
if (compareColumn.length > 0) {
|
|
106
106
|
const nOldData = oldData[nOldIndex];
|
|
107
107
|
for (let nColumn of compareColumn) {
|
|
108
108
|
if (nOldData[nColumn] !== nNewData[nColumn]) {
|
|
@@ -164,7 +164,7 @@ module.exports = class Db {
|
|
|
164
164
|
* @param {*} attributes 只返回属性
|
|
165
165
|
* @returns
|
|
166
166
|
*/
|
|
167
|
-
|
|
167
|
+
static async findAll(
|
|
168
168
|
model,
|
|
169
169
|
params = {},
|
|
170
170
|
order = [["id", "desc"]],
|
|
@@ -202,10 +202,16 @@ module.exports = class Db {
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
-
static async sql(sql, values = [], type = this.SQL_TYPE_SELECT) {
|
|
206
|
-
|
|
205
|
+
static async sql(sql, values = [], type = this.SQL_TYPE_SELECT, model) {
|
|
206
|
+
let params = {
|
|
207
207
|
type: type,
|
|
208
208
|
replacements: values,
|
|
209
|
-
}
|
|
209
|
+
};
|
|
210
|
+
if (model) {
|
|
211
|
+
params.model = model;
|
|
212
|
+
params.mapToModel = true;
|
|
213
|
+
params.type = Sequelize.QueryTypes.RAW;
|
|
214
|
+
}
|
|
215
|
+
return await this.getInstance().query(sql, params);
|
|
210
216
|
}
|
|
211
217
|
};
|
package/src/router.js
CHANGED
|
@@ -2,6 +2,7 @@ const Ret = require("./ret.js");
|
|
|
2
2
|
const Param = require("./param.js");
|
|
3
3
|
const querystring = require("querystring");
|
|
4
4
|
const body = require("body");
|
|
5
|
+
const multiparty = require("multiparty");
|
|
5
6
|
const { promisify } = require("util");
|
|
6
7
|
|
|
7
8
|
module.exports = class Router {
|
|
@@ -52,8 +53,7 @@ module.exports = class Router {
|
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
static _getPath(req) {
|
|
55
|
-
console.log("
|
|
56
|
-
console.log("path: " + req.path);
|
|
56
|
+
console.log("path:", req.method, req.path);
|
|
57
57
|
const paths = req.path.split("/");
|
|
58
58
|
const className = paths.length > 2 ? "/" + paths[paths.length - 2] : "/";
|
|
59
59
|
const methodName = paths[paths.length - 1];
|
|
@@ -70,15 +70,17 @@ module.exports = class Router {
|
|
|
70
70
|
JSON.stringify(req.headers).includes("multipart/form-data");
|
|
71
71
|
console.log("multipart:", isFile);
|
|
72
72
|
if (req.method == "POST") {
|
|
73
|
-
let data = await promisify(body)(req);
|
|
74
73
|
if (isFile) {
|
|
75
|
-
|
|
74
|
+
await this._getFile(req);
|
|
75
|
+
console.log("params:", req.params);
|
|
76
|
+
console.log("files:", req.files);
|
|
76
77
|
} else {
|
|
78
|
+
const data = await promisify(body)(req);
|
|
77
79
|
console.log("body: " + decodeURIComponent(data));
|
|
78
80
|
req.body = querystring.parse(decodeURIComponent(data));
|
|
79
81
|
}
|
|
80
82
|
}
|
|
81
|
-
req.params = {};
|
|
83
|
+
if (req.params == undefined) req.params = {};
|
|
82
84
|
if (!Param.isBlank(req.queries)) {
|
|
83
85
|
Object.keys(req.queries).forEach((n) => (req.params[n] = req.queries[n]));
|
|
84
86
|
}
|
|
@@ -87,14 +89,30 @@ module.exports = class Router {
|
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
|
|
92
|
+
static _getFile(req) {
|
|
93
|
+
return new Promise((resolve, reject) => {
|
|
94
|
+
const form = new multiparty.Form();
|
|
95
|
+
|
|
96
|
+
form.parse(req, function (err, fields, files) {
|
|
97
|
+
if (err) reject(err);
|
|
98
|
+
req.params = fields;
|
|
99
|
+
req.files = files;
|
|
100
|
+
resolve();
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
90
105
|
static _handleReturn(result, res) {
|
|
91
106
|
if (!Param.isBlank(result)) {
|
|
92
107
|
if (result instanceof Ret) {
|
|
108
|
+
console.log("return:", result.toString());
|
|
93
109
|
res.send(result.toString());
|
|
94
110
|
} else {
|
|
95
111
|
if (typeof result === "string") {
|
|
112
|
+
console.log("return:", result);
|
|
96
113
|
res.send(result);
|
|
97
114
|
} else {
|
|
115
|
+
console.log("return:", JSON.stringify(result));
|
|
98
116
|
res.send(JSON.stringify(result));
|
|
99
117
|
}
|
|
100
118
|
}
|
package/test/test-db.js
CHANGED
|
@@ -114,6 +114,15 @@ describe("db.js", () => {
|
|
|
114
114
|
let data = await Db.sql("select * from menu where id=?", [1]);
|
|
115
115
|
console.log(data);
|
|
116
116
|
});
|
|
117
|
+
it("to model", async () => {
|
|
118
|
+
let data = await Db.sql(
|
|
119
|
+
"select * from menu",
|
|
120
|
+
[],
|
|
121
|
+
Db.SQL_TYPE_SELECT,
|
|
122
|
+
Menu
|
|
123
|
+
);
|
|
124
|
+
console.log(JSON.stringify(data));
|
|
125
|
+
});
|
|
117
126
|
it("insert", async () => {
|
|
118
127
|
let data = await Db.sql(
|
|
119
128
|
"insert into menu (name) values(?)",
|
|
@@ -177,5 +186,5 @@ describe("db.js", () => {
|
|
|
177
186
|
console.log(data);
|
|
178
187
|
assert(data.length > 0, "no data");
|
|
179
188
|
});
|
|
180
|
-
})
|
|
189
|
+
});
|
|
181
190
|
});
|