[英]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.