node + express + mysql2/promiseでnamedPlaceholdersを使う方法

?とかで書かないので渡す値がわかりやすいです。

オプションで有効にする

mysqlに接続する際にオプションで「namedPlaceholders: true」を指定します。

const mysql = require('mysql2/promise');

const db = mysql.createPool({
  host: '127.0.0.1',
  port: 3306,
  database: 'dbname',
  user: 'user',
  password: 'pass',
  namedPlaceholders: true, // ここ
  connectionLimit: 5,
});

const sql = 'SELECT * FROM user WHERE id = :id';
const [ rows, fields ] = await db.execute(sql,{id: 1, dummy: 2});

値を渡すオブジェックとに使わないパラメータが(dummy)が入っていても問題なし。