Node-Postgres查询方法不调用它的callback函数

我有以下代码使用node-postgres:

var client = new pg.Client(conString); client.connect(function(err) { if(err) { throw new Error(console.error('could not connect to postgres '+ err)); } }); client.query('select * from public.spatial_ref_sys', function(err, result){ console.log('ffdafda'); throw new Error('kokpokopko'); }); 

我会想这个代码执行时,'ffdafda'将被打印到屏幕上,并会出现错误消息'kokpokopko'将被抛出。 我甚至在debugging器中停留了一个永不折断的断点。 由于这些事情从来没有发生,我假设callback从来没有被调用。

有什么select我需要为了得到callback被称为? 我正在阅读文档,我什么都看不到。

注意client.query被调用是很重要的。 我已经通过检查它的返回值来certificate它。

非常感谢你!

我知道这是10个月大,但是这只是我,所以我张贴的解决scheme。

一个查询的callback只有在抛出错误或接收到一行时才会触发。 在我的特殊情况下,我只使用“插入”查询。 我得到的结果是,我的callback从未被解雇(如果提供),并且“错误”和“行”事件从未被激发。 我唯一要开火的事件是“结束”。 我build议以下解决scheme:

 pg.connect(conString, function(err, client, done) { if(err) return console.error('error fetching client from pool', err); var q = client.query("INSERT INTO wddata (id, type, word) VALUES('456','n','a value')", function(err, result) { //this callback never fires for some queries if(err) return console.error('error running query', err); console.log(result.rows[0].number); }); q.on('end', function() { //This event callback always fires console.log('Finished with query'); }); done(); });