我正在使用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
时,我收到以下错误:
error: bind message supplies 2 parameters, but prepared statement "" requires 0
这是我的发布方法:(类型和消息都是字符串类型)
let publish = ( type, message) => {
if (pubClient) {
pubClient.query('NOTIFY "$1", \'$2\'', [type, message], (err, res) => {
if (err) {
console.log(err)
return
}
return true
})
}
return false
}
我无法弄清楚查询的正确语法或我收到此错误的原因。
任何帮助将不胜感激!
答案 0 :(得分:2)
Rectangle
频道无法参数化。尝试使用pg_notify:
NOTIFY channel [ , payload ]