In this tutorial, we will create a simple Node.js application that interacts with a relational database using Sequelize, an Object-Relational Mapping (ORM) library for Node.js. Sequelize supports various database dialects including MySQL, PostgreSQL, SQLite, and MSSQL, making it versatile for a wide range of applications.
Prerequisites
Before we begin, make sure you have the following installed on your system:
- Node.js (with npm)
- A relational database server (MySQL, PostgreSQL, SQLite, etc.)
- Basic knowledge of JavaScript and SQL
Step 1: Set Up a Node.js Project
Create a new directory for your project and navigate into it:
mkdir node-sequelize-tutorial
cd node-sequelize-tutorial
Initialize a new Node.js project using npm:
npm init -y
This will create a package.json
file with default settings.
Step 2: Install Dependencies
Install Sequelize and the database driver for your preferred database (e.g., mysql2
, pg
, sqlite3
):
npm install sequelize mysql2
Replace mysql2
with pg
for PostgreSQL, or sqlite3
for SQLite, depending on your database choice.
Step 3: Set Up Sequelize Configuration
Create a new file named sequelize.js
to configure Sequelize:
Replace 'database_name'
, 'username'
, and 'password'
with your actual database credentials. Adjust the dialect
, host
, and port
properties according to your database configuration.
Step 4: Define a Model
Create a new directory named models
, and inside it, create a file named User.js
:
This defines a User
model with username
and email
fields.
Step 5: Synchronize the Database
Create a script to synchronize the database schema with the defined models:
Run the script using Node.js:
node sync-db.js
This will create the necessary tables in your database based on the defined models.
Step 6: Use Sequelize in Your Application
Now that the database is set up, you can use Sequelize to perform CRUD (Create, Read, Update, Delete) operations in your application. Below is an example of using Sequelize to create a new user:
Run the script using Node.js:
node index.js
This will create a new user in the database with the specified username and email.
Conclusion
In this tutorial, you learned how to set up a Node.js project with Sequelize, define models, synchronize the database schema, and perform CRUD operations using Sequelize. Sequelize provides a powerful and flexible way to interact with relational databases in Node.js applications, making it a valuable tool for building robust and scalable applications. Experiment with different Sequelize features and explore its documentation to unleash the full potential of this library in your projects.