簡體   English   中英

無法在node.js中顯示行數

[英]Cannot display row count in node.js

我正在嘗試在node.js運行以下代碼以顯示postgresql數據庫中的表數:

var pg = require('pg'); 
var conString = "postgres://login:pwd@localhost/DB";
var client = new pg.Client(conString);

client.connect(function(err) {
    if (err) {
        console.error('Could not connect to DB', err);
    } else {
        console.log('Could connect to DB');
        client.query("SELECT * FROM pg_catalog.pg_tables", function(err, result) {
            if (err) {
                console.error('Error with table query', err);
            } else {
                var cnt = result.rows.length;
                console.log("Row count: " + cnt.toString());
            }
        });
        console.log('After query');
        client.end();
    }
});

不幸的是,控制台中僅顯示以下內容:

Could connect to DB
After query

為什么不顯示行計數行? 我如何找出問題所在?

由於client.query是異步的,因此將在查詢有機會返回結果之前調用client.end()

嘗試將異步函數內部的client.end()移至client.query。 然后,僅在result.rows已記錄到控制台之后才調用它,如下所示:

client.connect(function(err) {
    if (err) {
        console.error('Could not connect to DB', err);
    } else {
        console.log('Could connect to DB');
        client.query("SELECT * FROM pg_catalog.pg_tables", function(err, result) {
            if (err) {
                console.error('Error with table query', err);
            } else {
                var cnt = result.rows.length;
                console.log("Row count: " + cnt.toString);
                client.end();
                console.log('After query');
            }
        });
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM