node.js - Nodejs postgres pg语法错误

标签 node.js postgresql node-postgres

正如标题所说,我在使用 node-postgres 时遇到语法错误。代码如下所示

const {Pool, Client} = require('pg')
const pool = new Pool({
  user: '<user>',
  host: '<host>',
  database: '<database>',
  password: '<pw>',
  port: <port>
})

let query = `SELECT * FROM user JOIN notifications ON user.user_id = notifications.user_id WHERE user_id=$1`

let values = ["123"]

pool.query(query, values)
  .then(() => { /* do something */} )
  .catch((err) => { console.log(err)} )

根据这个查询,我收到一条语法错误消息

syntax error at or near "."

由于相同的查询在 pgAdmin 中运行良好,我猜测它是特定于模块的,但我还没有弄清楚问题出在哪里。

非常感谢任何帮助!

编辑:添加缺失的括号,感谢 Sreeragh A R

最佳答案

user 是 postgresql 中的保留字,你必须使用双引号将 user 转义

let query = `SELECT * FROM "user" JOIN notifications ON "user".user_id = notifications.user_id WHERE "user".user_id=$1`

关于node.js - Nodejs postgres pg语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51951484/

相关文章:

ajax - 通过 XMLHttpRequest 将数据发布到 Node

postgresql - Postgres :get executable query from query with parameters

javascript - Node.js域中的多个错误事件调用

node.js - postgres 中所有违反约束的错误消息

node.js - 在 Node.js 中使用 async/await 的 Lambda 授权方响应

postgresql - 如何用 SQLAlchemy 反射(reflect)类型?

linux - 在 Postigis 中创建扩展

postgresql - 在 PostgreSQL 触发器中访问动态列值

node.js - 连接在带有 Node.js 和 pg 的 PostgreSQL 上永远处于空闲状态