Javascript 无法读取节点中未定义的属性“query”&Postgresql
这段代码正确运行了一段时间,但几秒钟后,我收到了以下错误:我使用setInterval函数在视图端重复调用此函数Javascript 无法读取节点中未定义的属性“query”&Postgresql,javascript,node.js,postgresql,express,Javascript,Node.js,Postgresql,Express,这段代码正确运行了一段时间,但几秒钟后,我收到了以下错误:我使用setInterval函数在视图端重复调用此函数 您可能会收到一个错误,因此客户端没有方法查询,因为它是未定义的 您可以轻松地将其包装在if/else块中,以确保已设置客户端: client.query(query_get_value, function (err, result) { ^ TypeError: Cannot read property 'query' of undefine
您可能会收到一个错误,因此客户端没有方法查询,因为它是未定义的 您可以轻松地将其包装在if/else块中,以确保已设置客户端:
client.query(query_get_value, function (err, result) {
^
TypeError: Cannot read property 'query' of undefined
at /var/node_project/controllers/index.js:630:10
at client.connect (/var/node_project/node_modules/pg-pool/index.js:219:9)
at Connection.connectingErrorHandler (/var/node_project/node_modules/pg/lib/client.js:123:14)
at Connection.emit (events.js:127:13)
at Socket.<anonymous> (/var/node_project/node_modules/pg/lib/connection.js:117:12)
at Socket.emit (events.js:127:13)
at addChunk (_stream_readable.js:269:12)
at readableAddChunk (_stream_readable.js:256:11)
at Socket.Readable.push (_stream_readable.js:213:10)
at TCP.onread (net.js:598:20)
您可能会收到一个错误,因此客户端没有方法查询,因为它是未定义的 您可以轻松地将其包装在if/else块中,以确保已设置客户端:
client.query(query_get_value, function (err, result) {
^
TypeError: Cannot read property 'query' of undefined
at /var/node_project/controllers/index.js:630:10
at client.connect (/var/node_project/node_modules/pg-pool/index.js:219:9)
at Connection.connectingErrorHandler (/var/node_project/node_modules/pg/lib/client.js:123:14)
at Connection.emit (events.js:127:13)
at Socket.<anonymous> (/var/node_project/node_modules/pg/lib/connection.js:117:12)
at Socket.emit (events.js:127:13)
at addChunk (_stream_readable.js:269:12)
at readableAddChunk (_stream_readable.js:256:11)
at Socket.Readable.push (_stream_readable.js:213:10)
at TCP.onread (net.js:598:20)
我也试过了。但是在这种情况下,我收到了如下错误:{错误:对不起,已经有太多客户端了….这听起来像是您问题的根本原因。为什么有其他客户端连接?您应该有一个客户端,在查询完DBI后将其关闭。我也尝试过这样做。但是在这种情况下,我收到了如下错误:{错误:抱歉,已经有太多客户端了……这听起来像是问题的根本原因。为什么还有其他客户端连接?您应该有一个客户端,在查询完与您的问题无关的数据库后将其关闭,但是:您是否使用pg promise?如果是,您肯定应该使用其内置的查询生成系统,如client.query'SELECT*FROM$1',tablename而不是使用字符串连接。想象req.body.tablename是[yourtablename];DROP TABLE[yourtablename];-…与您的问题无关,但是:您使用的是pg promise吗?如果是,您肯定应该使用其内置的查询生成系统,如client。查询'SELECT*FROM$1',tablename而不是使用字符串连接。假设req.body.tablename是[yourtablename];DROP TABLE[yourtablename];-。。。
pool.connect(function (err, client, done) {
if(err) {
console.log(err)
}else{
var query_get_value = 'SELECT * FROM '+ tablename;
client.query(query_get_value, function (err, result) {
done();
if (err) {
throw err;
}
var rows = result.rows;
}