nodejs express 多重条件搜索

为了避免sql注入,引入了 ? 但是条件搜索麻烦死了,应该有相关的专门拼接的库,现手写了,好麻烦 😱

const presql = 'SELECT * FROM XXXXXXXXXXX where name LIKE ?';
router.get('/queryXXXX', function (req, res, next) {
  var sql = presql;

  var nullv = "null"
  var templateSql = [req.query.name+"%"];

  if(req.query.name != nullv || req.query.engine != nullv || req.query.type != nullv)
  {
    if(req.query.project != nullv)
    { 

        sql += ' and project=?'
        templateSql.push(req.query.project);
    }

    if(req.query.engine != nullv)
    { 

        sql += ' and engine=?'
        templateSql.push(req.query.engine);

    }

    if(req.query.type != nullv)
    { 
        sql += ' and type=?'
        templateSql.push(req.query.type);
    }


  };

  console.log("=====getart " + sql);

  db.query(sql, templateSql, function (err, result) {
    if (err) {
      console.log('[SELECT ERROR]:', err.message);
    }
    res.send(result);
  });
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值