#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
4 min read
Question 35 of 62medium

How 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 mysql2
code.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 pg
code.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']
  );
}