NodeJS连接PostgreSQL报错TCP.onRead

前端之家收集整理的这篇文章主要介绍了NodeJS连接PostgreSQL报错TCP.onRead前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

NodeJS写了接口,客户端不停调用这个接口获取数据,大概每次访问到100的时候就会报个错(TCP.onRead),整个Node服务端都会奔溃。


找了半天发现原来是client.end()放置的位置不对,应该在返回数据之前,而我放在最后,根本不会调用到,所以连接数据库的客户端不断增大。


  1. router.get('/getpoisummary',function(req,res) {
  2. var ptx = req.query["x"];
  3. var pty = req.query["y"];
  4. var radius = req.query["r"];
  5. if (radius > 5000){
  6. res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'});
  7. return res.end('{"status":"Failed","message":"radius is larger than 5000 meters"}');
  8. }
  9. <span style="white-space:pre"> </span>var constring = "";
  10. var client = new pg.Client(constring);
  11. client.connect(function(err){
  12. client.query("",function(err,result){
  13. var rowcount = result.rowCount;
  14. var nowdate = new Date();
  15. console.log("query succeed : " + nowdate + ",return record num : " + rowcount);
  16. if (rowcount == 0) {
  17. res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'});
  18. return res.end('{"status":"Failed"}');
  19. }
  20. else
  21. {
  22. var outstr = '{"status":"ok","records":[';
  23. for(var ii=0; ii < rowcount; ii++) {
  24. var row = result.rows[ii];
  25. outstr += "";
  26. }
  27. outstr = outstr.substr(0,outstr.length - 1);
  28. outstr += ']}';
  29. res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'});
  30. return res.end(outstr);
  31. }
  32. client.end();
  33. });
  34. });
  35. });

猜你在找的Postgre SQL相关文章