Javascript &引用;\";处或附近的语法错误;设置\"&引用;使用带有Postgresql的节点创建用户时
我正在尝试将我的旧mysql应用程序转换为Postgresql,连接到服务器非常困难,但当我认为它起作用时,这个消息出现在我的屏幕上。 我尝试使用在谷歌上找到的不同方法,但它们对我不起作用。 我认为问题在于如何连接到服务器。 我刚开始使用postgresqlJavascript &引用;\";处或附近的语法错误;设置\"&引用;使用带有Postgresql的节点创建用户时,javascript,node.js,postgresql,backend,insomnia,Javascript,Node.js,Postgresql,Backend,Insomnia,我正在尝试将我的旧mysql应用程序转换为Postgresql,连接到服务器非常困难,但当我认为它起作用时,这个消息出现在我的屏幕上。 我尝试使用在谷歌上找到的不同方法,但它们对我不起作用。 我认为问题在于如何连接到服务器。 我刚开始使用postgresql const { Pool, Client } = require("pg") const config = require("../config") const connection = new Pool({ host: confi
const { Pool, Client } = require("pg")
const config = require("../config")
const connection = new Pool({
host: config.postgresql.host,
user: config.postgresql.user,
password: config.postgresql.password,
database: config.postgresql.database,
port: "5432",
ssl: true
})
function list(table) {
return new Promise((resolve, reject) => {
connection.query(`SELECT * FROM ${table}`, (err, data) => {
if (err) return reject(err)
resolve(data)
})
})
}
function get(table, id) {
return new Promise((resolve, reject) => {
connection.query(`SELECT * FROM ${table} WHERE id=${id}`, (err, data) => {
if (err) return reject(err)
resolve(data)
})
})
}
function insert(table, data) {
return new Promise((resolve, reject) => {
connection.query(`INSERT INTO ${table} SET ${data}`, (err, result) => {
if (err) return reject(err)
resolve(result)
})
})
}
function update(table, data) {
return new Promise((resolve, reject) => {
connection.query(
`UPDATE ${table} SET ${data} WHERE id=${data.id}`,
(err, result) => {
if (err) return reject(err)
resolve(result)
}
)
})
}
const upsert = async (table, payload) =>
new Promise((resolve, reject) => {
connection.query(
`INSERT INTO ${table} SET ${payload} ON DUPLICATE KEY UPDATE ${payload}`,
(error, data) => {
console.log("UPDATE DATA: ", data)
if (error) {
return reject(error)
}
resolve(data)
}
)
})
function query(table, query, join) {
let joinQuery = ""
if (join) {
const key = Object.keys(join)[0]
const val = join[key]
joinQuery = `JOIN ${key} ON ${table}.${val} = ${key}.id`
}
return new Promise((resolve, reject) => {
connection.query(
`SELECT * FROM ${table} ${joinQuery} WHERE ${table}.${query}`,
(err, res) => {
if (err) return reject(err)
resolve(res[0] || null)
}
)
})
}
module.exports = {
list,
get,
upsert,
query
}
插入查询错误,请将其更改为以下语法。您不能在insert中使用
SET
<代码>设置应在更新
中使用
错误:
connection.query(`INSERT INTO ${table} SET ${data}`, (err, result)
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
插入查询语法:
connection.query(`INSERT INTO ${table} SET ${data}`, (err, result)
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);