bonsaif 1.10.33 → 1.10.35
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/lib/hookup/exec.js +4 -2
- package/lib/hookup/mariadb.js +28 -10
- package/lib/hookup/mongodb.js +193 -177
- package/lib/hookup/postgres.js +35 -27
- package/lib/hookup/redis.js +301 -70
- package/package.json +1 -1
- package/tests/README.md +228 -0
- package/tests/config.example.js +51 -0
- package/tests/docker-restart.sh +20 -0
- package/tests/docker-start.sh +192 -0
- package/tests/docker-stop.sh +41 -0
- package/tests/run-all-tests.js +68 -0
- package/tests/test-mariadb.js +85 -0
- package/tests/test-mongodb.js +133 -0
- package/tests/test-postgres.js +84 -0
- package/tests/test-redis.js +85 -0
package/lib/hookup/exec.js
CHANGED
|
@@ -53,8 +53,10 @@ module.exports = {
|
|
|
53
53
|
|
|
54
54
|
mongoClose: async function (mongoclient){
|
|
55
55
|
try{
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
if (mongoclient && typeof mongoclient.close === 'function') {
|
|
57
|
+
await mongoclient.close();
|
|
58
|
+
this.debug ? utl.log(`${tag} [Mongo] closing connection`) : '';
|
|
59
|
+
}
|
|
58
60
|
}catch(e){
|
|
59
61
|
utl.log(`${tag} [Mongo] err.exec.mongoClose`,e);
|
|
60
62
|
}
|
package/lib/hookup/mariadb.js
CHANGED
|
@@ -15,17 +15,12 @@
|
|
|
15
15
|
let obj_json ={};
|
|
16
16
|
let headers = '';
|
|
17
17
|
const start = Date.now();
|
|
18
|
+
|
|
18
19
|
return new Promise(function(resolve, reject) {
|
|
19
|
-
|
|
20
|
-
conn.query(query, function (err, rows, fields) {
|
|
20
|
+
conn.query(query, async function (err, rows, fields) {
|
|
21
21
|
const end = Date.now();
|
|
22
22
|
const time = end - start;
|
|
23
|
-
|
|
24
|
-
try{
|
|
25
|
-
exec.mariadbClose(conn);
|
|
26
|
-
}catch(e){
|
|
27
|
-
utl.log('err.qson close '+e);
|
|
28
|
-
}
|
|
23
|
+
|
|
29
24
|
try{
|
|
30
25
|
if (err){
|
|
31
26
|
resolve({"result":{dml, headers, time:utl.milisegundosASegundos(time), code:err.errno, error:1, msg:err.sqlMessage}, results:err});
|
|
@@ -50,7 +45,6 @@
|
|
|
50
45
|
tipo = 'insert';
|
|
51
46
|
headers = 'insert_id|changed_rows';
|
|
52
47
|
}
|
|
53
|
-
//Remove RowDataPacket {} Object.values(JSON.parse(JSON.stringify(rows)))
|
|
54
48
|
switch(tipo){
|
|
55
49
|
case 'store': data = Object.values(JSON.parse(JSON.stringify(rows[0]))); break;
|
|
56
50
|
case 'insert': data =[{"insert_id":rows.insertId, "changed_rows":rows.changedRows}]; break;
|
|
@@ -60,13 +54,20 @@
|
|
|
60
54
|
}
|
|
61
55
|
}catch(e){
|
|
62
56
|
console.log(e);
|
|
57
|
+
resolve({"result":{dml, headers:"", time:utl.milisegundosASegundos(time), code:500, error:1, msg:e}, results:e});
|
|
58
|
+
}finally{
|
|
59
|
+
// Cerrar conexión SIEMPRE
|
|
60
|
+
try{
|
|
61
|
+
await exec.mariadbClose(conn);
|
|
62
|
+
}catch(e){
|
|
63
|
+
utl.log('err.qson.close '+e);
|
|
64
|
+
}
|
|
63
65
|
}
|
|
64
66
|
});
|
|
65
67
|
});
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
const api=async (options,db,query,dml,ip,tag,callback)=>{
|
|
69
|
-
//Inicializar conexiones a bases
|
|
70
71
|
tag = tag == null ? '': tag;
|
|
71
72
|
const exec = require("./exec");
|
|
72
73
|
|
|
@@ -78,6 +79,14 @@ const api=async (options,db,query,dml,ip,tag,callback)=>{
|
|
|
78
79
|
}catch(e){
|
|
79
80
|
r.result.headers = 'err';
|
|
80
81
|
r.data=[{'err':e}];
|
|
82
|
+
// Cerrar conexión si hubo error antes de qson
|
|
83
|
+
if (con){
|
|
84
|
+
try{
|
|
85
|
+
await exec.mariadbClose(con);
|
|
86
|
+
}catch(closeErr){
|
|
87
|
+
utl.log('err.api.close.catch '+closeErr);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
81
90
|
}finally {
|
|
82
91
|
try{
|
|
83
92
|
let code = r.result.code;
|
|
@@ -89,7 +98,16 @@ const api=async (options,db,query,dml,ip,tag,callback)=>{
|
|
|
89
98
|
let connErr = await execErr.mariadbConn(options);
|
|
90
99
|
try{
|
|
91
100
|
let rerr = await qson(db,connErr,qErr,dml,ip);
|
|
101
|
+
// qson ya cierra connErr, no necesitamos cerrarlo aquí
|
|
92
102
|
}catch(e){
|
|
103
|
+
// Si falla el logging, cerrar la conexión de error
|
|
104
|
+
if (connErr){
|
|
105
|
+
try{
|
|
106
|
+
await execErr.mariadbClose(connErr);
|
|
107
|
+
}catch(closeErr){
|
|
108
|
+
utl.log('err.api.connErr.close '+closeErr);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
93
111
|
}
|
|
94
112
|
}
|
|
95
113
|
}catch(e){
|
package/lib/hookup/mongodb.js
CHANGED
|
@@ -24,24 +24,24 @@ const find=async(options,dbm, col, query, orderby, limit)=>{
|
|
|
24
24
|
//let obj_result = {"alias":alias,"dml":dml,"headers":"","columns":0,"error":0,"msg":"","ip":ip, "time":0}
|
|
25
25
|
return new Promise((resolve, reject)=>{
|
|
26
26
|
mongoclient.then(
|
|
27
|
-
function(client){
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
27
|
+
async function(client){
|
|
28
|
+
try{
|
|
29
|
+
let db = client.db(dbm);
|
|
30
|
+
let result = await db.collection(col).find(query).sort(orderby).limit(limit).toArray();
|
|
31
|
+
const end = Date.now();
|
|
32
|
+
const time = end - start;
|
|
33
|
+
resolve({"result":{"dml":"find", "headers":getFields(result[0]), "time":utl.milisegundosASegundos(time), code:200, error:0}, data:result});
|
|
34
|
+
}catch(err){
|
|
35
|
+
const end = Date.now();
|
|
36
|
+
const time = end - start;
|
|
37
|
+
resolve({"result":{"dml":"find", "headers":"", "time":utl.milisegundosASegundos(time), code:204, error:1, msg:err}, results:err});
|
|
38
|
+
}finally{
|
|
39
|
+
try{
|
|
40
|
+
await exec.mongoClose(client);
|
|
41
|
+
}catch(e){
|
|
42
|
+
utl.log('err.find.close '+e);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
45
|
}
|
|
46
46
|
).catch(err=>{
|
|
47
47
|
resolve({"result":{"dml":"find", "headers":"", time:0, code:404, error:1}, "results":err});
|
|
@@ -57,28 +57,35 @@ const count=async(options,dbm, col, json)=>{
|
|
|
57
57
|
const start = Date.now();
|
|
58
58
|
return new Promise((resolve, reject)=>{
|
|
59
59
|
mongoclient.then(
|
|
60
|
-
function(client){
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
async function(client){
|
|
61
|
+
try{
|
|
62
|
+
let db = client.db(dbm);
|
|
63
|
+
let res;
|
|
64
|
+
// Compatibilidad con versiones antiguas y nuevas de MongoDB
|
|
65
|
+
if (typeof db.collection(col).countDocuments === 'function') {
|
|
66
|
+
res = await db.collection(col).countDocuments(query);
|
|
67
|
+
} else {
|
|
68
|
+
// Fallback para versiones anteriores
|
|
69
|
+
res = await db.collection(col).count(query);
|
|
70
|
+
}
|
|
64
71
|
const end = Date.now();
|
|
65
72
|
const time = end - start;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
73
|
+
let data = {"count":res};
|
|
74
|
+
resolve({"result":{dml:"count", headers:"count", "time":utl.milisegundosASegundos(time), code:200, error:0}, results:res, data});
|
|
75
|
+
}catch(err){
|
|
76
|
+
const end = Date.now();
|
|
77
|
+
const time = end - start;
|
|
78
|
+
resolve({result:{dml:"count", headers:"", time:utl.milisegundosASegundos(time), code:204, error:1, msg:err}, results:err});
|
|
79
|
+
}finally{
|
|
80
|
+
try{
|
|
81
|
+
await exec.mongoClose(client);
|
|
82
|
+
}catch(e){
|
|
83
|
+
utl.log('err.count.close '+e);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
79
86
|
}
|
|
80
87
|
).catch(err=>{
|
|
81
|
-
resolve({result:{dml:"
|
|
88
|
+
resolve({result:{dml:"count", headers:"", time:0, code:404, error:1}, results:err});
|
|
82
89
|
});
|
|
83
90
|
})
|
|
84
91
|
}
|
|
@@ -102,24 +109,26 @@ const insert= async(options,dbm, col, json_obj)=>{
|
|
|
102
109
|
|
|
103
110
|
return new Promise((resolve, reject)=>{
|
|
104
111
|
mongoclient.then(
|
|
105
|
-
function(client){
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
112
|
+
async function(client){
|
|
113
|
+
try{
|
|
114
|
+
let db = client.db(dbm);
|
|
115
|
+
let res = await db.collection(col).insertOne(json_insert);
|
|
116
|
+
const end = Date.now();
|
|
117
|
+
const time = end - start;
|
|
118
|
+
let data = {"insertId":_id};
|
|
119
|
+
let ops=res.ops!=null?res.ops:{};
|
|
120
|
+
resolve({result:{dml:"insert", headers:"insertId", insertId:_id, time:utl.milisegundosASegundos(time), code:200, error:0}, results:{WriteResult:'1 document inserted', ops}, data:[data]});
|
|
121
|
+
}catch(err){
|
|
122
|
+
const end = Date.now();
|
|
123
|
+
const time = end - start;
|
|
124
|
+
resolve({result:{dml:"insert", headers:"insertId", insertId:_id, time:utl.milisegundosASegundos(time), code:204, error:1, msg:err}, results:err});
|
|
125
|
+
}finally{
|
|
126
|
+
try{
|
|
127
|
+
await exec.mongoClose(client);
|
|
128
|
+
}catch(e){
|
|
129
|
+
utl.log('err.insert.close '+e);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
123
132
|
}
|
|
124
133
|
).catch(err=>{
|
|
125
134
|
resolve({"result":{"dml":"insert", "headers":"", time:0, code:404, error:1}, results:err});
|
|
@@ -137,24 +146,26 @@ const update=async(options,dbm, col, json_obj, query)=>{
|
|
|
137
146
|
|
|
138
147
|
return new Promise((resolve, reject)=>{
|
|
139
148
|
mongoclient.then(
|
|
140
|
-
function(client){
|
|
141
|
-
|
|
142
|
-
|
|
149
|
+
async function(client){
|
|
150
|
+
try{
|
|
151
|
+
let db = client.db(dbm);
|
|
152
|
+
let res = await db.collection(col).updateOne(query, { $set: json_obj });
|
|
143
153
|
const end = Date.now();
|
|
144
154
|
const time = end - start;
|
|
145
155
|
let result, nModified=0;
|
|
146
|
-
try{ result = res.result; nModified = res.result
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
156
|
+
try{ result = res.result; nModified = res.modifiedCount || res.result?.nModified || 0; } catch(e){ }
|
|
157
|
+
resolve({result:{dml:"update", headers:"update", time:utl.milisegundosASegundos(time), code:200, error:0}, results:{WriteResult:`${nModified} document Updated`, result }});
|
|
158
|
+
}catch(err){
|
|
159
|
+
const end = Date.now();
|
|
160
|
+
const time = end - start;
|
|
161
|
+
resolve({result:{dml:"update", headers:"", time:utl.milisegundosASegundos(time), code:204, error:1, msg:err}, results:err});
|
|
162
|
+
}finally{
|
|
163
|
+
try{
|
|
164
|
+
await exec.mongoClose(client);
|
|
165
|
+
}catch(e){
|
|
166
|
+
utl.log('err.update.close '+e);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
158
169
|
}
|
|
159
170
|
).catch(err=>{
|
|
160
171
|
resolve({result:{dml:"update", headers:"", time:0, code:404, error:1}, results:err});
|
|
@@ -202,25 +213,27 @@ const dbs=async(options)=>{
|
|
|
202
213
|
const start = Date.now();
|
|
203
214
|
return new Promise((resolve, reject)=>{
|
|
204
215
|
mongoclient.then(
|
|
205
|
-
function(client){
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
216
|
+
async function(client){
|
|
217
|
+
try{
|
|
218
|
+
let db = client.db().admin();
|
|
219
|
+
let res = await db.listDatabases();
|
|
220
|
+
const end = Date.now();
|
|
221
|
+
const time = end - start;
|
|
222
|
+
res.time=utl.milisegundosASegundos(time);
|
|
223
|
+
let databases=res.databases!=null?res.databases:{};
|
|
224
|
+
let totalSize=res.totalSize!=null?res.totalSize:0;
|
|
225
|
+
resolve({result:{dml:"dbs", headers:getFields(databases[0]), time:utl.milisegundosASegundos(time), code:200, error:0}, results:{totalSize}, data:databases});
|
|
226
|
+
}catch(err){
|
|
227
|
+
const end = Date.now();
|
|
228
|
+
const time = end - start;
|
|
229
|
+
resolve({result:{dml:"dbs", headers:"", time:utl.milisegundosASegundos(time), code:204, error:1, msg:err}, results:err});
|
|
230
|
+
}finally{
|
|
231
|
+
try{
|
|
232
|
+
await exec.mongoClose(client);
|
|
233
|
+
}catch(e){
|
|
234
|
+
utl.log('err.dbs.close '+e);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
224
237
|
}
|
|
225
238
|
).catch(err=>{
|
|
226
239
|
resolve({result:{dml:"dbs", headers:"", time:0, code:404, error:1}, results:err});
|
|
@@ -235,24 +248,24 @@ const collections=async(options,dbm)=>{
|
|
|
235
248
|
const start = Date.now();
|
|
236
249
|
return new Promise((resolve, reject)=>{
|
|
237
250
|
mongoclient.then(
|
|
238
|
-
function(client){
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
251
|
+
async function(client){
|
|
252
|
+
try{
|
|
253
|
+
let db = client.db(dbm);
|
|
254
|
+
let res = await db.listCollections().toArray();
|
|
242
255
|
const end = Date.now();
|
|
243
256
|
const time = end - start;
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
}
|
|
257
|
+
resolve({result:{dml:"collections", headers:"name", time:utl.milisegundosASegundos(time), code:200, error:0}, results:res, data:res});
|
|
258
|
+
}catch(err){
|
|
259
|
+
const end = Date.now();
|
|
260
|
+
const time = end - start;
|
|
261
|
+
resolve({result:{dml:"collections", headers:"", time:utl.milisegundosASegundos(time), code:204, error:1, msg:err}, results:err});
|
|
262
|
+
}finally{
|
|
263
|
+
try{
|
|
264
|
+
await exec.mongoClose(client);
|
|
265
|
+
}catch(e){
|
|
266
|
+
utl.log('err.collections.close '+e);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
256
269
|
}
|
|
257
270
|
).catch(err=>{
|
|
258
271
|
resolve({result:{dml:"collections", headers:"", time:0, code:404, error:1}, results:err});
|
|
@@ -394,32 +407,33 @@ const command=async(options,dbm, json)=>{
|
|
|
394
407
|
|
|
395
408
|
return new Promise((resolve, reject)=>{
|
|
396
409
|
mongoclient.then(
|
|
397
|
-
function(client){
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
410
|
+
async function(client){
|
|
411
|
+
try{
|
|
412
|
+
let db = client.db(dbm);
|
|
413
|
+
let res = await db.command(json);
|
|
414
|
+
const end = Date.now();
|
|
415
|
+
const time = end - start;
|
|
402
416
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
}
|
|
417
|
+
if (find){
|
|
418
|
+
let rFind = res.cursor.firstBatch;
|
|
419
|
+
resolve({result:{dml:"find", headers:getFields(rFind[0]), time:utl.milisegundosASegundos(time), code:200, error:0}, data:rFind});
|
|
420
|
+
}else{
|
|
421
|
+
resolve({result:{dml:"command", headers:"", time:utl.milisegundosASegundos(time), code:200, error:0}, results:res});
|
|
422
|
+
}
|
|
423
|
+
}catch(err){
|
|
424
|
+
const end = Date.now();
|
|
425
|
+
const time = end - start;
|
|
426
|
+
resolve({result:{dml:"command", headers:"", time:utl.milisegundosASegundos(time), code:204, error:1, msg:err}, results:err});
|
|
427
|
+
}finally{
|
|
428
|
+
try{
|
|
429
|
+
await exec.mongoClose(client);
|
|
430
|
+
}catch(e){
|
|
431
|
+
utl.log('err.command.close '+e);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
420
434
|
}
|
|
421
435
|
).catch(err=>{
|
|
422
|
-
resolve({result:{dml:"
|
|
436
|
+
resolve({result:{dml:"command", headers:"", time:0, code:404, error:1}, results:err});
|
|
423
437
|
});
|
|
424
438
|
})
|
|
425
439
|
}
|
|
@@ -431,24 +445,24 @@ const deleteMany=async(options,dbm, col, json)=>{
|
|
|
431
445
|
const start = Date.now();
|
|
432
446
|
return new Promise((resolve, reject)=>{
|
|
433
447
|
mongoclient.then(
|
|
434
|
-
function(client){
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
448
|
+
async function(client){
|
|
449
|
+
try{
|
|
450
|
+
let db = client.db(dbm);
|
|
451
|
+
let res = await db.collection(col).deleteMany(query);
|
|
438
452
|
const end = Date.now();
|
|
439
453
|
const time = end - start;
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
}
|
|
454
|
+
resolve({"result":{dml:"deleteMany", headers:"", "time":utl.milisegundosASegundos(time), code:200, error:0}, results:res});
|
|
455
|
+
}catch(err){
|
|
456
|
+
const end = Date.now();
|
|
457
|
+
const time = end - start;
|
|
458
|
+
resolve({result:{dml:"deleteMany", headers:"", time:utl.milisegundosASegundos(time), code:204, error:1, msg:err}, results:err});
|
|
459
|
+
}finally{
|
|
460
|
+
try{
|
|
461
|
+
await exec.mongoClose(client);
|
|
462
|
+
}catch(e){
|
|
463
|
+
utl.log('err.deleteMany.close '+e);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
452
466
|
}
|
|
453
467
|
).catch(err=>{
|
|
454
468
|
resolve({result:{dml:"deleteMany", headers:"", time:0, code:404, error:1}, results:err});
|
|
@@ -466,27 +480,29 @@ const updateMany=async(options,dbm, col, json_obj, query)=>{
|
|
|
466
480
|
|
|
467
481
|
return new Promise((resolve, reject)=>{
|
|
468
482
|
mongoclient.then(
|
|
469
|
-
function(client){
|
|
470
|
-
|
|
471
|
-
|
|
483
|
+
async function(client){
|
|
484
|
+
try{
|
|
485
|
+
let db = client.db(dbm);
|
|
486
|
+
let res = await db.collection(col).updateMany(query, { $set: json_obj });
|
|
472
487
|
const end = Date.now();
|
|
473
488
|
const time = end - start;
|
|
474
489
|
let result, nModified=0;
|
|
475
|
-
try{ result = res.result; nModified = res.result
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
490
|
+
try{ result = res.result; nModified = res.modifiedCount || res.result?.nModified || 0; } catch(e){ }
|
|
491
|
+
resolve({result:{dml:"updateMany", headers:"updateMany", time:utl.milisegundosASegundos(time), code:200, error:0}, results:{WriteResult:`${nModified} document Updated`, result }});
|
|
492
|
+
}catch(err){
|
|
493
|
+
const end = Date.now();
|
|
494
|
+
const time = end - start;
|
|
495
|
+
resolve({result:{dml:"updateMany", headers:"", time:utl.milisegundosASegundos(time), code:204, error:1, msg:err}, results:err});
|
|
496
|
+
}finally{
|
|
497
|
+
try{
|
|
498
|
+
await exec.mongoClose(client);
|
|
499
|
+
}catch(e){
|
|
500
|
+
utl.log('err.updateMany.close '+e);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
487
503
|
}
|
|
488
504
|
).catch(err=>{
|
|
489
|
-
resolve({result:{dml:"
|
|
505
|
+
resolve({result:{dml:"updateMany", headers:"", time:0, code:404, error:1}, results:err});
|
|
490
506
|
});
|
|
491
507
|
})
|
|
492
508
|
}
|
|
@@ -497,28 +513,28 @@ const drop=async(options,dbm, col)=>{
|
|
|
497
513
|
const start = Date.now();
|
|
498
514
|
return new Promise((resolve, reject)=>{
|
|
499
515
|
mongoclient.then(
|
|
500
|
-
function(client){
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
516
|
+
async function(client){
|
|
517
|
+
try{
|
|
518
|
+
let db = client.db(dbm);
|
|
519
|
+
let res = await db.collection(col).drop();
|
|
504
520
|
const end = Date.now();
|
|
505
521
|
const time = end - start;
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
}
|
|
522
|
+
let data = {"drop":res};
|
|
523
|
+
resolve({"result":{dml:"drop", headers:"drop", "time":utl.milisegundosASegundos(time), code:200, error:0}, results:res, data});
|
|
524
|
+
}catch(err){
|
|
525
|
+
const end = Date.now();
|
|
526
|
+
const time = end - start;
|
|
527
|
+
resolve({result:{dml:"drop", headers:"", time:utl.milisegundosASegundos(time), code:204, error:1, msg:err}, results:err});
|
|
528
|
+
}finally{
|
|
529
|
+
try{
|
|
530
|
+
await exec.mongoClose(client);
|
|
531
|
+
}catch(e){
|
|
532
|
+
utl.log('err.drop.close '+e);
|
|
533
|
+
}
|
|
534
|
+
}
|
|
519
535
|
}
|
|
520
536
|
).catch(err=>{
|
|
521
|
-
resolve({result:{dml:"
|
|
537
|
+
resolve({result:{dml:"drop", headers:"", time:0, code:404, error:1}, results:err});
|
|
522
538
|
});
|
|
523
539
|
})
|
|
524
540
|
}
|