Vấn đề về request lên server truy xuất database postgres bằng nodejs



  • app.get('/', function(req,res) {
    
    req.on('end', function() {
      var conString = "pg://postgres:[email protected]:5432/postgres";
    
      var client = new pg.Client(conString);
      client.connect();
      var que = client.query("Select*from weather ");
    
      que.on('row', function(row, result) {
        result.addRow(row);
      });
    
      que.on('end', function(result) {
        bo += JSON.stringify(result.rows[1]);
        console.log(bo)
        client.end();
      });
    
    });
    
      res.send(bo);
      bo = "";
    })
    

    Khi request lần đầu thì không thấy kết quả bo trả về, phải request lần 2 thì mới thấy kết quả trả về client. Tôi không hiểu tại sao, mong mọi người giúp đỡ


  • Global Moderator

    @tran-cuong Bạn tham khảo liên kết này xem, có thể do chưa lắng nghe hàm on('data') để mồi dữ liệu :D

    http://stackoverflow.com/a/23817480/1896897



  • ok, cảm ơn bạn nha
    Để mình xem thử



  • Do vấn đề function async bạn.
    Bạn đặt dòng res.send(bo) ở trong function query 'end' thì mới in ra lần đầu tiên được. Chỗ console.log() ấy.



  • Nó không có chạy được luôn đó bạn kiểu như bị đứng vậy đó. Còn cách nào nữa k bạn



  • @Vũ Mình xem rồi, mà nó cũng chẳng thay đổi được gì đó bạn



  • mong mọi người giúp đỡ, mình rất bí cái vụ này


  • Global Moderator

    @tran-cuong Bạn public đoạn code của bạn đi. Lên gist.github.com hoặc jsfiddle.net để mọi người xem giúp nhé :)

    Mô tả thêm usecase của bạn, kết quả hiện tại, vấn đề hiện tại và mong muốn ?


Log in to reply