This repository was archived by the owner on Aug 10, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathasync-POC.js
84 lines (78 loc) · 2.45 KB
/
async-POC.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
'use strict';
const f = require('util').format;
const MongoClient = require('mongodb').MongoClient;
// MongoDB klient. Operatsioon "connection" teeb MongoClient uue
// instantsi, mis omistatakse allolevale muutujale.
var globClient;
// Ühendus MongoDB andmebaasiga "Logibaas". Deklareeritud siin,
// et oleks elutukse väljastajas kättesaadav.
var db;
const MONGODB_URL = 'mongodb://localhost:27017';
/** Kontrollib, kas ühendus MongoDB-ga (mida hoiab globClient),
* on üleval. Kui on, siis tagastab true. Vastasel korral üritab
* luua uue ühenduse. Kui see õnnestub, siis salvestab ühenduse
* loomisega loodava uue kliendi globaalmuutujasse globClient
* ja tagastab true. Muutujas db tagastab logibaasiga ühenduse.
* Kui ühendumine ei õnnestu, siis tagastab false.
*/
function looVoiUuendaYhendus() {
if (globClient && globClient.isConnected()) {
console.log('--- Logibaasiga ühendus olemas ---');
return false;
}
else {
MongoClient.connect(
MONGODB_URL,
{ useNewUrlParser: true },
(err, client) => {
// client on uus MongoClient-i instance
if (err === null) {
console.log("--- Logibaasiga ühendumine õnnestus");
globClient = client;
db = globClient.db('Logibaas');
}
else {
console.log("ERR-01: Logibaasiga ühendumine ebaõnnestus");
}
});
}
}
/** Kontrollib, kas baasiühendus on olemas ja toimib
* (globaalne muutuja globClient). Kui ei ole, siis üritab
* luua ühenduse. Ühenduse loomisel seatakse ka globaalne
* muutuja db osutama andmebaasile "logibaas".
* looYhendus() on async funktsioon s.t tagastab lubaduse. Lubaduse
* töötlemiseks kasuta .then(() => {}) konstruktsiooni.
*/
async function looYhendus() {
try {
if (globClient && globClient.isConnected()) {
console.log('Ühendus olemas');
return;
}
var klient = await MongoClient.connect(MONGODB_URL,
{ useNewUrlParser: true });
console.log('Ühendus loodud');
globClient = klient;
db = klient.db('logibaas');
}
catch (err) {
console.log('Ühenduse loomine ebaõnnestus', err);
db = null;
globClient = null;
};
}
/** Kasutame f-ni looYhendus(), et väljastada kõik
* kirjed tabelist "autentimised".
*/
looYhendus().then(
() => {
if (db !== null) {
console.log('Kirjed:');
db.collection('autentimised')
.find({ method: 'mID' })
.toArray((err, items) => {
console.log(items)
});
}
});