使用参数化查询在 nodejs 中返回 Postgres 结果

Returning Postgres result in nodejs with parameterized query

如何在 Nodejs 中使用参数化查询 return 结果?

如果我删除 RETURNING*

,查询运行正常

现在,服务器return出现这个错误

error: syntax error at or near "RETURNING"

server.js

const text = "UPDATE users SET info = JSONB_SET(info, '{geometry,coordinates}', '"+coords+"') WHERE id= RETURNING*";
const values = [id];

pool.query(text, values, (err, res) => {

if (err) {

//log errors
console.log(err.stack);

//return error to client

} else {

//success
//console.log(res.rows);


}
});

要在节点上使用 postgres 参数化查询,正确的方法是使用 promise 语法。在 Github here and here.

上提出了类似的问题

我在问题中使用的语法似乎存在问题,因为 pg 正在读取 $1 作为文字字符串的一部分而不是占位符,因为它用引号引起来。

Promise 语法似乎可以解决这个问题。嗯,适合我。

更新查询

const queryOpts = {
text: "UPDATE users SET info = jsonb_set(info, '{geometry,coordinates}', ) WHERE id = ",
values: [coords, userid]
}

pool.query(queryOpts).then(response => {
console.log(response.rows)
}).catch(error => {
console.log(error)
})

SELECT查询

var email = JSON.stringify(logins.email);

const queryOpts = {
text: "SELECT * FROM users WHERE info -> 'email'=",
values: [email]
}

pool.query(queryOpts).then(response => {
console.log(response.rows)
}).catch(error => {
console.log(error)
})