rt!
connection.query(‘SELECT * FROM users WHERE id = ?’, [userId], function(err, results) { // … });
用ORM 比如 Sequelize
用1L的方式即可,字符串拼接sql容易被sql注入!
字符串拼接SQL,编码效率低,可读性与可维护性差,基本不作考虑的
可以考虑下面两个库: knex squel
拼sql 拼时间长了,容易发生对眼
@zouzhenxing 你用的Sequelize?
没事, 用 mysql.escape / mysql.format 然后让领导注入一个试试…他就同意了…
@13241491189 NO,我是orm的反对者,我喜欢直接搞sql。这个函数就是mysql模块自带的方法。
多谢各位
我用的Sequelize
可以参考几个makeSQL方法,底层也用 mysql.escape 做了过滤
@zouzhenxing orm 我配置到项目中 各种不顺手 目前为止也在拼sql
npm mysql : avoid SQL Injection attacks
不用拼sql,?替代不就可以吗…再说只要不是用户输入,sql拼接又如何… 出错概率确实会比较大
我用类似mongo的语法
来自酷炫的 CNodeMD
别用字符串拼接SQL,稍有不慎SQL注入,应该用参数化SQL
推荐sequelize,https://github.com/sequelize/sequelize,直接sql维护起来太麻烦了
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
connection.query(‘SELECT * FROM users WHERE id = ?’, [userId], function(err, results) { // … });
用ORM 比如 Sequelize
用1L的方式即可,字符串拼接sql容易被sql注入!
字符串拼接SQL,编码效率低,可读性与可维护性差,基本不作考虑的
可以考虑下面两个库: knex squel
拼sql 拼时间长了,容易发生对眼
@zouzhenxing 你用的Sequelize?
没事, 用 mysql.escape / mysql.format 然后让领导注入一个试试…他就同意了…
@13241491189 NO,我是orm的反对者,我喜欢直接搞sql。这个函数就是mysql模块自带的方法。
多谢各位
我用的Sequelize
可以参考几个makeSQL方法,底层也用 mysql.escape 做了过滤
@zouzhenxing orm 我配置到项目中 各种不顺手 目前为止也在拼sql
npm mysql : avoid SQL Injection attacks
不用拼sql,?替代不就可以吗…再说只要不是用户输入,sql拼接又如何… 出错概率确实会比较大
我用类似mongo的语法
来自酷炫的 CNodeMD
别用字符串拼接SQL,稍有不慎SQL注入,应该用参数化SQL
推荐sequelize,https://github.com/sequelize/sequelize,直接sql维护起来太麻烦了