4 min read
•Question 35 of 62mediumHow to work with SQL databases in Node.js?
Connecting to MySQL/PostgreSQL from Node.js.
What You'll Learn
- Connecting to SQL databases
- Running queries
- Using connection pools
MySQL
$ terminalBash
npm install mysql2code.jsJavaScript
const mysql = require('mysql2/promise');
// Connection pool
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb',
waitForConnections: true,
connectionLimit: 10
});
async function query() {
// Select
const [rows] = await pool.execute('SELECT * FROM users');
// With parameters (prevents SQL injection)
const [user] = await pool.execute(
'SELECT * FROM users WHERE id = ?',
[userId]
);
// Insert
const [result] = await pool.execute(
'INSERT INTO users (name, email) VALUES (?, ?)',
['John', 'john@example.com']
);
console.log(result.insertId);
}PostgreSQL
$ terminalBash
npm install pgcode.jsJavaScript
const { Pool } = require('pg');
const pool = new Pool({
host: 'localhost',
user: 'postgres',
password: 'password',
database: 'mydb',
max: 10
});
async function query() {
// Select
const { rows } = await pool.query('SELECT * FROM users');
// With parameters
const { rows: [user] } = await pool.query(
'SELECT * FROM users WHERE id = $1',
[userId]
);
// Insert
const { rows: [newUser] } = await pool.query(
'INSERT INTO users (name, email) VALUES ($1, $2) RETURNING *',
['John', 'john@example.com']
);
}