在我的 Node 应用程序中,我想连接到 postgresql 数据库以对实体进行一些工作。但我无法让它与 Node.js 一起使用。我已经使用 psycopg2 从 Python 脚本成功连接并查询了数据库,所以我知道连接部分可以工作。
var DB_URL = "postgres://admin@localhost/mydb_development"
var db = new pg.Client(DB_URL);
db.connect();
.... more stuff here ....
app.get('/test', function(request, response) {
response.setHeader('Content-Type', 'text/plain');
response.write("First!\n");
var i = 0;
var query = db.query("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'", []);
query.on('row', function(row) {
console.log(row['table_name']);
i++;
response.write(String(row['table_name']) + "\n");
});
response.write("\nHello db; variable i=" + i + "!");
response.end();
});
我发现 console.log(row['table_name']) 成功地将表名输出到控制台。但是,看起来响应变量和 i 在闭包内都不可用......那么我到底应该如何获得查询的结果来处理它?!