【问题标题】:prepared Statements nodejs postgresql returns error no parameter准备好的语句nodejs postgresql返回错误没有参数
【发布时间】:2021-07-28 17:24:47
【问题描述】:

我被告知我的查询可能面临 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 = $1`, id)
        console.log("error ",user)
        res.json(user[0])
     } catch(err) {
         console.log(err);
     }
 });

错误:没有参数$1

【问题讨论】:

    标签: javascript node.js postgresql server psql


    【解决方案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 = $1`, id)
            console.log("error ",user)
            res.json(user[0])
         } catch(err) {
             console.log(err);
         }
     });
    

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

    【讨论】:

    • @SenamAhadzi 没问题!如果此答案或任何答案解决了您的问题,请单击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 2015-07-13
    • 2012-01-31
    相关资源
    最近更新 更多