Node.js NodeJS+;express将数据多次插入表中

Node.js NodeJS+;express将数据多次插入表中,node.js,postgresql,express,heroku-postgres,Node.js,Postgresql,Express,Heroku Postgres,我对nodeJs是新手 我试图创建一个简单的服务器(nodeJS+Postgres),每次使用参数调用URL时,它都会向DB(基于URL)插入一个新行。 问题是,以下代码在第一次调用URL时起作用,但在第二次调用时,它不会在数据库中插入数据 如何使它在每次调用URL时都工作 谢谢 const express = require('express') const app = express() const port = process.env.PORT || 3000 const { Client

我对nodeJs是新手

我试图创建一个简单的服务器(nodeJS+Postgres),每次使用参数调用URL时,它都会向DB(基于URL)插入一个新行。 问题是,以下代码在第一次调用URL时起作用,但在第二次调用时,它不会在数据库中插入数据

如何使它在每次调用URL时都工作

谢谢

const express = require('express')
const app = express()
const port = process.env.PORT || 3000
const { Client } = require('pg');

const client = new Client({
    connectionString: 'postgres://...........',
    ssl: true,
});



app.get('/item/', (req, res) =>
    (client.connect()
        .then(()=>console.log('sucessful connection to DB'))
        .then(()=>client.query(`INSERT INTO items(id,user) values('${req.query.id}','${req.query.user}')`))
        .then(res.send("user sent"))
        .catch(e=>console.log(e))
        .finally(()=>client.end())))



app.listen(port, () => console.log(`Example app listening on port ${port}!`))

您正在重用客户端,但您不能这样做。在你的情况下,最好使用连接


另外,不要连接这些值,否则会受到SQL注入攻击。改用

您会遇到什么错误?什么日志?错误:客户端已连接。不能重复使用客户端。此错误在我第二次调用URL时出现
const pool = new Pool({
   connectionString: 'postgres://...........',
   ssl: true,
})

app.get('/item/', (req, res, next) => {

     pool.query('...')
        .then(result => res.send('ok'))
        .catch(next)
})