mysql 转义字符串节点 js`

mysql escaping string node js`

所以我正在使用节点 js 我有以下 mysql 查询 im 使用 npm mysql 库来处理查询。

let userName = req.body.userName;   
let sqlStatement = `SELECT COUNT(*) AS exist FROM user where username=${userName}`;

是新的es6语法自动防止mysql注入。 因为当我这样做时

let userName = req.body.userName;   
userName = connection.escape(userName);
let sqlStatement = `SELECT COUNT(*) AS exist FROM user where username=${userName}`;

它像这样 'myUserName' 在数据库中的数据周围加上单引号。有人知道为什么吗?或者如果新语法自动阻止它。

使用 [] 语法转义数据

result = await database.query(
        "INSERT INTO user SET ?",
        [req.body],
        function(error, result) {
          if (!error) {
            console.log("worked");
          } else {
            console.log(error);
          }
        }
      );