Node.js Nodejs-Postgres-Notify-Error绑定消息

Node.js Nodejs-Postgres-Notify-Error绑定消息,node.js,postgresql,notify,node-postgres,Node.js,Postgresql,Notify,Node Postgres,我正在使用(v-6.1.2) 这是我正在重构的代码,因为查询中存在未参数化的参数。这是我没有写的代码 我有以下函数publish,其中pubClient是 new pg.Client(pubsubUri).connect((err, client) => { if(err) return logger.error('database-connect', err.message) pubClient = client }) 运行publish时,出现以下错误: 错误:绑定

我正在使用(v-6.1.2)

这是我正在重构的代码,因为查询中存在未参数化的参数。这是我没有写的代码

我有以下函数
publish
,其中
pubClient

new pg.Client(pubsubUri).connect((err, client) => {
    if(err) return logger.error('database-connect', err.message)

    pubClient = client
})
运行
publish
时,出现以下错误:

错误:绑定消息提供了2个参数,但准备好的语句“”需要0

这是我的发布方法:(type和message都是string类型)

我不知道查询的正确语法是什么,也不知道为什么会出现这个错误

任何帮助都将不胜感激

NOTIFY channel [ , payload ]
无法参数化通道。尝试使用pg_notify:

let publish = (type, message) => {
    if (pubClient) {
        pubClient.query('SELECT pg_notify($1, $2)', [type, message], (err, res) => {
            if (err) {
                console.log(err)
              return
            }
          return true
        })

    }

    return false
}

您如何调用
publish
?您返回的
true
false
也不正确。这是异步编程,您需要使用
true
false
进行回调,我知道。这是我正在重构的代码(我没有编写)。它实际上是同步运行的。我只是添加了回调来查看错误是什么,因为
publish
被称为
publish('HELLO',{“payload”:{….})
一定是查询字符串出错了。看起来也很奇怪,就是这样!谢谢在文档中,它在哪里说通道不能参数化?在文档中,它没有说。但您可以从示例查询
notifytest中看到“test”第一个参数不是字符串,而是标识符,因此无法绑定。表名也会发生同样的情况——不能绑定它们。pg_倾听应该有用。
let publish = (type, message) => {
    if (pubClient) {
        pubClient.query('SELECT pg_notify($1, $2)', [type, message], (err, res) => {
            if (err) {
                console.log(err)
              return
            }
          return true
        })

    }

    return false
}