Node.js MySQL – Beginner Guide

Node.js is a popular tool for building server-side websites. It is good at handling many tasks at the same time and is used by many developers. MySQL is a common choice for storing data because it is reliable and easy to use. This guide will show you the basic steps to link your Node.js application to a MySQL database. This will help you build a robust, data-centric application. By the end of this, you will know how to work with MySQL databases using Node.js with helpful examples.

Understanding MySQL Database

MySQL is a well-liked free tool that helps you organize and sort data in a way that makes it easy for programs to find and change this information. It uses SQL, a special code, to perform many tasks like searching, updating and handling data.

Installing MySQL Driver

To connect to a MySQL database using Node.js is a programming environment, you first need to add the MySQL driver. This driver is like a connector that lets your application talk to the database, allowing you to execute SQL commands right from your Node.js code.

To install the MySQL driver, open your terminal and run the following command in your project’s root directory:

npm install mysql

This command adds the mysql package to your project, which you’ll use to establish a connection to your MySQL database.

Creating a Connection

Once the MySQL driver is installed, the next step is to create a connection to your MySQL database. This involves specifying your database’s details such as the host, user, password, and database name.

Here’s an example of how to create a connection:

const mysql = require('mysql');

// Create a connection to the database
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'your_username',
  password: 'your_password',
  database: 'your_database_name'

// Connect to MySQL
connection.connect(error => {
  if (error) throw error;
  console.log('Successfully connected to the database.');

Replace your_username, your_password, and your_database_name with your actual database credentials.

Querying a Database

With the connection established, you’re now ready to query your database. Querying involves executing SQL commands to retrieve or modify data. The MySQL driver provides the .query() method to perform this task.

Example: Fetching Data

To fetch data from a database, you use the SELECT SQL statement. Here’s how you can retrieve all rows from a table named users:

connection.query('SELECT * FROM users', (error, results, fields) => {
  if (error) throw error;
  console.log('The received data from the table: ', results);

This code selects all rows from the users table and logs the results to the console. The results variable contains an array of row objects, while fields provides information about the returned results fields.

Example: Inserting Data

To insert data into a database, you can use the INSERT INTO SQL statement. Below is an example of inserting a new user into the users table:

const user = { username: 'newuser', email: '' };
const query = 'INSERT INTO users SET ?';

connection.query(query, user, (error, results) => {
  if (error) throw error;
  console.log('User added successfully with ID:', results.insertId);

This code constructs an INSERT INTO query, dynamically inserting the user object’s properties into the users table. The results.insertId property contains the ID of the newly inserted row, which is useful for confirming the operation’s success.

Closing the Connection

After executing your database operations, it’s important to close the connection to free up resources. You can close the connection using the .end() method:

connection.end(err => {
  if (err) {
    return console.log('error:' + err.message);
  console.log('Database connection closed.');


This guide has shown you how to connect a MySQL database to a Node.js application, a key skill for building applications that work with data. You’ve learned to add the necessary MySQL software, link to your database, perform tasks such as adding or changing data, and close the link when you’re done. These functions are important for creating websites that can change or store data, known as CRUD (Create, Read, Update, Delete).

Consider this guide as a start to learning how to use MySQL and Node.js together. As you get better at these skills, you’ll find many more ways to build advanced applications using databases.