Note that there are some explanatory texts on larger screens.

plurals
  1. POCan not close postgreSQL connection within Node.js script
    primarykey
    data
    text
    <p>I am writing small node.js server for helping maintaining build machines. It's basically for testers to be able to drop db or restart server remotely. I have some issues with pg connections. Can anybody have an idea why it is not being closed after first request?</p> <pre><code>var client = new pg.Client(conString); var server = http.createServer(function (req, res) { var url = parse(req.url); if (url.pathname =='/'){ (...) }else{ var slash_index = url.pathname.indexOf('/',1); var command = url.pathname.slice(1,slash_index); if (command =='restart'){ res.write('restarting server please wait'); } else if (command == 'drop-db'){ console.log('drop-db'); client.connect(); console.log('connect'); var query = client.query("select datname from pg_database;", function(err, result) { if (err) throw err; console.log('callback'); }); query.on('end', function() { console.log('close'); client.end(); }); } else{ res.write('unknown command : '+ command); } res.write('\n'); res.end(); } }).listen(5337); </code></pre> <p>So what I get on screen after first request is :</p> <pre><code>drop-db connect callback close </code></pre> <p>great but after next request I get only </p> <pre><code>drop-db connect </code></pre> <p>after next one I already get an pg error</p> <p>what do I do wrong?</p> <p>Edit : No errors after second commit . Error after third :</p> <pre><code>events.js:48 throw arguments[1]; // Unhandled 'error' event ^ error: invalid frontend message type 0 at [object Object].&lt;anonymous&gt; (/home/wonglik/workspace/server.js/node_modules/pg/lib/connection.js:412:11) at [object Object].parseMessage (/home/wonglik/workspace/server.js/node_modules/pg/lib/connection.js:287:17) at Socket.&lt;anonymous&gt; (/home/wonglik/workspace/server.js/node_modules/pg/lib/connection.js:45:22) at Socket.emit (events.js:88:20) at TCP.onread (net.js:347:14) </code></pre> <p>I think it is related to opening new connection while old is still on.</p> <p>Edit 2 : </p> <p>I've checked postgres logs :</p> <p>after second request :</p> <pre><code> 2012-03-13 09:23:22 EET LOG: invalid length of startup packet </code></pre> <p>after third request :</p> <pre><code> 2012-03-13 09:24:48 EET FATAL: invalid frontend message type 0 </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload