我正在尝试学习如何使用JavaScript连接到PostgreSQL数据库,但是当我尝试使用query.on(...)将查询记录到控制台时,会收到一个类型错误,提示:"query.on不是一个函数"。我已经广泛搜索了如何解决这个问题,但似乎找不到任何关于 .on 函数的文档。我知道连接成功了,因为当我从终端查询数据库时,新添加了两行。
jsontest.js
var pg = require('pg');
var conString = "postgres://[username]:[password]@localhost:5432/VONKTA1";
//username and password masked
var client = new pg.Client(conString);
client.connect();
client.query("INSERT INTO json_test (name, attributes) VALUES ('Ted', $1)", [{"age": 2, "gender": "M"}]);
client.query("INSERT INTO json_test (name, attributes) VALUES ('Sarah', $1)", [{"age": 8, "gender": "F"}]);
console.log("about to query");
var query = client.query("SELECT * FROM json_test");
query.on('row', function(row) {
console.log(row);
});
query.on('end', function() {
client.end();
});
package.json
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "test.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"pg": "^7.0.2",
}
}
pg.Client
是什么,你能否只是简单地在控制台中记录query
?你可以查看可用的方法,也许在创建新的pg.Client
对象时出现了错误? - jdmdevdotnetquery.on
已从node-pg 7中删除。请参见https://node-postgres.com/guides/upgrading以了解如何正确处理行。 - Denys Séguret.on
的任何内容。他们使用回调、Promises或await/async
而不是事件。 - baao