有没有一种方法可以不对我的Express应用程序中的SQL查询进行硬编码?

时间:2019-04-02 04:53:33

标签: mysql node.js express

因此,我正在为一个项目制作一个快速应用程序,并且我使用mysql作为数据库,我以前在代码中对sql查询进行了硬编码,但是根据我的老师的说法,这是一种不好的做法,所以我当时寻找一种无需硬编码的方法。

我用猫鼬尝试了诸如find和findAll之类的查询,我正在寻找类似的东西。

app.get("/shops/:id",function(req,res){
    var id = req.params.id;

    connection.query('SELECT * FROM `menuItems` WHERE shop_id =?',[id],function(error,results,fields) {
        console.log(results);
        res.json(JSON.stringify(results));
    })
});

我不想像上面的代码片段中那样对查询进行硬编码。

请帮助我找到一种在我的应用中不对SQL查询进行硬编码的方法。预先感谢。

1 个答案:

答案 0 :(得分:-2)

  

存储过程。防止出现各种可能的问题   注射,维护。将数据库代码放在数据库代码所属的位置。

     

ORM工具(例如Hibernate,Subsonic等)意味着您永远不会看到一行   (*)SQL的第一位。更陡峭的学习曲线,但很棒   练习早点开始而不是迟点。

请参阅this答案。

(*)摘录经过修改以匹配OP场景