DEV Community

Bhavik Gevariya
Bhavik Gevariya

Posted on

Getting Started with Sequelize and Node.js: A Guide to Connecting and Defining Models

If you’re building a Node.js application that requires interacting with a database, you may want to consider using Sequelize as your Object-Relational Mapping (ORM) tool. Sequelize is a popular ORM tool that allows you to easily interact with various SQL databases, including PostgreSQL, MySQL, and SQLite.

In this post, we will discuss how to connect Sequelize to Node.js and set up a basic database model.

Prerequisites
Before we get started, you should have Node.js installed on your machine. You should also have a basic understanding of JavaScript and SQL.

Installing Sequelize
To install Sequelize, run the following command in your terminal:

npm install sequelize
Enter fullscreen mode Exit fullscreen mode

Additionally, you will need to install a database driver for the database you will be using with Sequelize. For example, if you are using MySQL, you would run:

npm install mysql2
Enter fullscreen mode Exit fullscreen mode

Setting up a Sequelize Connection
To connect Sequelize to your database, you will need to create a new Sequelize instance and configure it with your database credentials. Here’s an example of what that might look like:

const Sequelize = require('sequelize');
const sequelize = new Sequelize('database_name', 'username', 'password', {
 host: 'localhost',
 dialect: 'mysql'
});
Enter fullscreen mode Exit fullscreen mode

In this example, we are creating a new Sequelize instance and passing in the name of our database, username, and password. We are also specifying the host and dialect of our database.

Defining a Model
Once you have connected Sequelize to your database, you can start defining models for your data. Models are used to represent tables in your database, and they allow you to easily perform CRUD (Create, Read, Update, Delete) operations.

Here’s an example of how to define a simple model:

const { DataTypes } = require('sequelize');
const User = sequelize.define('User', {
 firstName: {
 type: DataTypes.STRING,
 allowNull: false
 },
 lastName: {
 type: DataTypes.STRING,
 allowNull: false
 },
 email: {
 type: DataTypes.STRING,
 allowNull: false,
 unique: true
 }
});
Enter fullscreen mode Exit fullscreen mode

In this example, we are defining a User model with three properties: firstName, lastName, and email. We are also specifying the data types of each property, whether they are allowed to be null, and if the email property must be unique.

Syncing the Database
Once you have defined your models, you can use Sequelize to automatically create the corresponding tables in your database. To do this, you can use the sync() method:

sequelize.sync()
 .then(() => {
 console.log('Database synced successfully');
 })
 .catch((error) => {
 console.error('Error syncing database', error);
 });
Enter fullscreen mode Exit fullscreen mode

In this example, we are calling the sync() method and logging a message to the console if the sync was successful. If there was an error, we will log the error to the console.

Conclusion
In this post, we’ve covered the basics of connecting Sequelize to Node.js and defining a model. We also discussed how to automatically sync your models with your database.

With Sequelize, you can easily interact with your database in a more object-oriented way, making it a great tool for Node.js developers. If you’re building a Node.js application that requires interacting with a database, consider giving Sequelize a try!

Image description
Small support comes a long way!

Top comments (0)