-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbad.txt
114 lines (94 loc) · 2.81 KB
/
bad.txt
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/*||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*/
/*********************** BAD WARIANT ************************/
/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
/* так работает но нет обработки ошибки в SQL */
app.get("000/users",
async (req, rs) => {
const text = 'SELECT * FROM users WHERE id=4';
const dbAnsw = await sql.query(text);
if(dbAnsw.rowCount == 0){
rs.status(404).send({ 'errorMessage': 'Users not found' });
}
rs.status(200).send(dbAnsw.rows);
},
);
/* так все работает кроме той ситуации когда ошибка в SQL - мы не обрабатываем эту ошибку и скрипт вешается */
app.get("00/users",
async (req, rs) => {
const text = 'SELECT * FROM users WHERE idx=4';
const dbAnsw = await sql.query(text);
if(dbAnsw.rowCount == 0){
rs.status(404).send({ 'errorMessage': 'Users not found' });
}
rs.status(200).send(dbAnsw.rows);
},
);
// GET USERS
app.get("0/users", function(req, rs){
const text = 'SELECT * FROM users';
sql.query(text, (err, res) => {
if (err) {
return rs.status(500).send(err.stack);
}
if(res.rowCount == 0){
return rs.status(404).send({'errorMessage':'Users not found'});
}
rs.status(200).send(res.rows);
})
});
/**
* GET USERS
*/
app.get("1/users",
async (req, rs) => {
const text = 'SELECT * FROM users';
try{
const result = await sql.query(text);
} catch (err){
throw err;
}
rs.send(result);
// Не работает так как нам тут не известен result. Заработает если перенести в try
},
);
/**
* GET USERS
*/
app.get("2/users",
async (req, rs) => {
const text = 'SELECT * FROM users';
console.log(111);
const result = await sql.query(text, (err, res) => {
if (err) {
return {status: 500, data: err.stack};
}
if(res.rowCount == 0){
return {status: 404, data: { 'errorMessage': 'Users not found' }};
}
console.log(222);
return {status: 200, data: res.rows}
});
console.log(333);
rs.status(result.status).send(result.data);
},
);
// Не работает так как порядок выполнения 111 -> 333 -> 222
/**
* GET USERS - рабочая но не верная с точки зрения асинхронности
*/
app.get("3/users",
async (req, rs) => {
const text = 'SELECT * FROM users';
await sql.query(text, (err, res) => {
//producer.send('test-topic',0,'qqqqqqqqqqqq',0);
if (err) {
return rs.status(500).send(err.stack);
}
if(res.rowCount == 0){
return rs.status(404).send({ 'errorMessage': 'Users not found' });
}
rs.status(200).send(res.rows);
});
},
);
// работает но код не чистый