Edit: fixed, results is een global in onderstaande code ...
De verwachte output van onderstaand script is:
Meestal is dit het resultaat, wat volgens mij een bug is:
Het probleem doet zich nooit voor als ik de lijnen met 'FIX' uncomment. Ik heb nog niet lang ervaring met nodejs, maar ik zie hier na lang staren toch nog steeds niet wat ik fout doe en vermoed dat er een dieper liggend probleem is. Kan iemand dit bevestigen?
De verwachte output van onderstaand script is:
code:
1
2
3
| running queries --------------- [ { name: 'Company 0' } ] [ { id: 0, company_id: 0 }, { id: 1, company_id: 0 } ] |
Meestal is dit het resultaat, wat volgens mij een bug is:
code:
1
2
3
4
5
| running queries --------------- [ { name: 'Company 0' } ] [ { name: 'Company 0' }, { id: 0, company_id: 0 }, { id: 1, company_id: 0 } ] |
Het probleem doet zich nooit voor als ik de lijnen met 'FIX' uncomment. Ik heb nog niet lang ervaring met nodejs, maar ik zie hier na lang staren toch nog steeds niet wat ik fout doe en vermoed dat er een dieper liggend probleem is. Kan iemand dit bevestigen?
JavaScript:
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
| var pg = require('pg'); var connectionString = require('./dbconfig.js'); var doQuery = function(queryString) { // Get a Postgres client from the connection pool pg.connect(connectionString, function(err, client, done) { results = []; // results.push(queryString); // PART OF 'FIX' var query = client.query(queryString); // Stream results back one row at a time query.on('row', function(row) { results.push(row); }); // After all data is returned, close connection and return results query.on('end', function() { client.end(); // results.splice(0, 1); // PART OF 'FIX' console.log(results); }); // Handle Errors if(err) { console.log(err); } }); }; var company_id = 0; console.log('running queries ---------------'); doQuery('SELECT companies.name FROM companies WHERE companies.id = '+company_id+';'); doQuery('SELECT * FROM users WHERE users.company_id = ' + company_id + ';'); |