Javascript 使用数组查询数据库的更好方法
下面是我当前的代码,但是,我很确定它很糟糕。它工作正常,但我想我可能会成为SQL注入的牺牲品。我对Javascript和SQL都是新手,所以请原谅我的愚蠢问题Javascript 使用数组查询数据库的更好方法,javascript,sql,node.js,postgresql,express,Javascript,Sql,Node.js,Postgresql,Express,下面是我当前的代码,但是,我很确定它很糟糕。它工作正常,但我想我可能会成为SQL注入的牺牲品。我对Javascript和SQL都是新手,所以请原谅我的愚蠢问题 app.post('/api/v1/relevantEvents', async (req, res) => { try { let events = req.body.cookie; if (!events) events = []; let a = ""
app.post('/api/v1/relevantEvents', async (req, res) => {
try {
let events = req.body.cookie;
if (!events) events = [];
let a = "";
for (let i = 0; i < events.length; i++) {
a += "subject = '" + events[i] + "'";
if (i !== events.length - 1) a += " OR ";
}
const allEvents = await pool.query("SELECT * FROM events WHERE subject IS NULL or " + a);
res.json(allEvents.rows);
} catch(err) {
console.error(err.message);
}
});
app.post('/api/v1/relevantEvents',异步(req,res)=>{
试一试{
让事件=req.body.cookie;
如果(!events)events=[];
让a=“”;
for(设i=0;i
请求主体是一个数组,其中的值存在于某一行中。事实上,您的SQL查询存在SQL注入的风险。因此,我建议更改常量
allEvents
,假设a
是字符串/文本:
constallevents=wait pool.query(“从主题为NULL或$1::text的事件中选择*”,[a]);
});
事实上,您的SQL查询存在SQL注入的风险。因此,我建议更改常量allEvents
,假设a
是字符串/文本:
constallevents=wait pool.query(“从主题为NULL或$1::text的事件中选择*”,[a]);
});