准备好的语句 nodejs postgresql returns 错误无参数

prepared Statements nodejs postgresql returns error no parameter

我被告知我的查询可能存在 SQL 注入的风险,因此我尝试更改它们。但是,现在每当我收到请求时,我都会收到一条错误消息,指出没有参数 $1。任何帮助将不胜感激。

app.get('/users', async(req, res) => {
     try {
        const {id} = req.params;
        console.log(id)
        const user = await Query(`SELECT * FROM client where id = `, id)
        console.log("error ",user)
        res.json(user[0])
     } catch(err) {
         console.log(err);
     }
 });

错误:没有参数$1

你的 console.log(id) 打印 undefined 吗?看起来您是从 URL 的路径参数中获取 id,但是您的路径似乎没有任何参数。尝试将 :id 添加到您的路径

app.get('/users/:id', async(req, res) => {
     try {
        const {id} = req.params;
        console.log(id)
        const user = await Query(`SELECT * FROM client where id = `, id)
        console.log("error ",user)
        res.json(user[0])
     } catch(err) {
         console.log(err);
     }
 });

然后像 GET /users/1 一样调用它,例如获取 ID 为 1 的用户。