Node.js met mysql2
mysql2 is de meestgebruikte MySQL-driver voor Node.js. Hij ondersteunt promises en prepared statements.
Installeren
bashnpm install mysql2
Een connection pool maken
Gebruik een pool in plaats van losse verbindingen — die hergebruikt verbindingen en is sneller.
js// db.js import mysql from "mysql2/promise"; export const pool = mysql.createPool({ host: process.env.DB_HOST, port: Number(process.env.DB_PORT), user: process.env.DB_USER, password: process.env.DB_PASS, database: process.env.DB_NAME, waitForConnections: true, connectionLimit: 10, });
Data ophalen
jsimport { pool } from "./db.js"; const [rows] = await pool.query("SELECT id, naam, prijs FROM producten"); for (const product of rows) { console.log(product.naam, product.prijs); }
Invoegen met een prepared statement
Gebruik execute() met ?-placeholders — waardes worden veilig ingevuld.
jsimport { pool } from "./db.js"; const [result] = await pool.execute( "INSERT INTO producten (naam, prijs) VALUES (?, ?)", [naam, prijs] ); console.log("Nieuw id:", result.insertId);
Eén rij ophalen
jsconst [rows] = await pool.execute( "SELECT * FROM producten WHERE id = ?", [id] ); const product = rows[0]; // undefined als niet gevonden
Nooit waarden in de string plakken
Gebruik pool.execute(sql, [waarden]), niet pool.query(`... WHERE id = ${id}`). Zie Veiligheid.
CommonJS?
Gebruik je require in plaats van import? Dan wordt het const mysql = require("mysql2/promise"); — de rest blijft gelijk.
Meer in Node.js