Sequelize.js
Installation
Make sure that you first have Node.js and npm installed. Then install sequelize.js with npm
npm install --save sequelize
You will also need to install supported database Node.js modules. You only need to install the one you are using
For MYSQL
and Mariadb
npm install --save mysql
For PostgreSQL
npm install --save pg pg-hstore
For SQLite
npm install --save sqlite
For MSSQL
npm install --save tedious
Once you have you set up installed you can include and create a new Sequalize instance like so.
ES5 syntax
var Sequelize = require('sequelize');
var sequelize = new Sequelize('database', 'username', 'password');
ES6 stage-0 Babel syntax
import Sequelize from 'sequelize';
const sequelize = new Sequelize('database', 'username', 'password');
You now have an instance of sequelize available. You could if you so feel inclined call it a different name such as
var db = new Sequelize('database', 'username', 'password');
or
var database = new Sequelize('database', 'username', 'password');
that part is your prerogative. Once you have this installed you can use it inside of your application as per the API documentation https://docs.sequelizejs.com/en/v3/api/sequelize/
Your next step after install would be to set up your own model
Defining Models
There are two ways to define models in sequelize; with sequelize.define(...)
, or sequelize.import(...)
. Both functions return a sequelize model object.
1. sequelize.define(modelName, attributes, [options])
This is the way to go if you’d like to define all your models in one file, or if you want to have extra control of your model definition.
/* Initialize Sequelize */
const config = {
username: "database username",
password: "database password",
database: "database name",
host: "database's host URL",
dialect: "mysql" // Other options are postgres, sqlite, mariadb and mssql.
}
var Sequelize = require("sequelize");
var sequelize = new Sequelize(config);
/* Define Models */
sequelize.define("MyModel", {
name: Sequelize.STRING,
comment: Sequelize.TEXT,
date: {
type: Sequelize.DATE,
allowNull: false
}
});
For the documentation and more examples, check out the doclets documentation, or sequelize.com’s documentation.
2. sequelize.import(path)
If your model definitions are broken into a file for each, then import
is your friend. In the file where you initialize Sequelize, you need to call import like so:
/* Initialize Sequelize */
// Check previous code snippet for initialization
/* Define Models */
sequelize.import("./models/my_model.js"); // The path could be relative or absolute
Then in your model definition files, your code will look something like this:
module.exports = function(sequelize, DataTypes) {
return sequelize.define("MyModel", {
name: DataTypes.STRING,
comment: DataTypes.TEXT,
date: {
type: DataTypes.DATE,
allowNull: false
}
});
};
For more information on how to use import
, check out sequelize’s express example on GitHub.