prepared Statements nodejs postgresql returns error no param



我被告知我的查询可能有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

您的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的用户。

最新更新