Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用数组查询数据库的更好方法_Javascript_Sql_Node.js_Postgresql_Express - Fatal编程技术网

Javascript 使用数组查询数据库的更好方法

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 = ""

下面是我当前的代码,但是,我很确定它很糟糕。它工作正常,但我想我可能会成为SQL注入的牺牲品。我对Javascript和SQL都是新手,所以请原谅我的愚蠢问题

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]);
});