我正在使用node-postgres(v-6.1.2(
这是我重构的代码,因为查询中没有参数化参数。这是我没有写的代码!
i具有以下功能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
}
我无法弄清楚查询的正确语法是什么,或者为什么会遇到此错误。
任何帮助将不胜感激!
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
}