Sequelize support for Node.js
Introduction
Sequelize is a promise-based Node.js ORM tool for Postgres, MySQL, SQLite, Microsoft SQL Server, Oracle Database - see https://sequelize.org/docs/ for more information.
Objects
This extension creates the entity, entity operation and query objects:
- a
NodeJS Entityobject when the APIsdefineorinitof aSequelize.Modelinstance is found. - a
NodeJS Entity Operationobject when one of the supported Sequelize APIs is used and linked to one of the entities. - a
NodeJS SQL Queryobject when the APIqueryis found.
| Icon | Description |
|---|---|
![]() |
NodeJS Entity |
![]() |
NodeJS Entity Operation |
![]() |
NodeJS SQL Query |
Supported persistence SQL databases
Supported operations
| Entity Operation | Supported APIs |
|---|---|
| Add |
|
| Update |
|
| Remove |
|
| Select |
|
Model above can be defined by Sequelize.define or using a class extending Sequelize.Model.
Supported links
| Link Type | Caller type | Callee type | Comment |
|---|---|---|---|
| callLink |
|
|
|
| relyonLink |
|
|
When the entity is defined using a class extending Sequelize.Model. |
| useInsertLink |
|
|
Created by SQL Analyzer when DDL source files are analyzed or by Missing tables and procedures for Node.js when the object is not analyzed. |
| useUpdateLink |
|
|
Created by SQL Analyzer when DDL source files are analyzed or by Missing tables and procedures for Node.js when the object is not analyzed. |
| useDeleteLink |
|
|
Created by SQL Analyzer when DDL source files are analyzed or by Missing tables and procedures for Node.js when the object is not analyzed. |
| useSelectLink |
|
|
Created by SQL Analyzer when DDL source files are analyzed or by Missing tables and procedures for Node.js when the object is not analyzed . |
Example
Take the following codes of javascript file:
const Sequelize = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:');
class User extends Sequelize.Model { }
User.init(
{
// ... (attributes)
},
{
sequelize,
modelName: 'user',
}
);
await User.findAll().then(t_user=> { });
const Post = sequelize.define(
'post',
{
// ... (attributes)
},
{
freezeTableName: true,
},
);
await Post.update({ isClos: true });
function userSearch (req) {
var query = "SELECT name,id FROM Users WHERE login='" + req.body.login + "'";
db.sequelize.query(query, {
model: db.User
})
.then(user => {
})
};
In this example, two NodeJS Entity objects, two NodeJS Entity Operation objects, and
a NodeJS SQL Query object are created.
A relyOnLink is added when entity user is defined using a class extending Sequelize.Model.
The SQL Analyzer or Missing tables and procedures for Node.js
links these entity operations and this query with the corresponding tables.
In the present case, this extension creates two useSelectLink and a useUpdateLink
to the missing tables Users and post:



