Node.js - Sequelize support
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
Node.js entity
object when the APIs ‘define’ or ‘init’ of a Sequelize.Model instance is found. - a
Node.js entity operation
object when one of the supported Sequelize APIs is used and linked to one of the entities. - a
TypeScript SQL query
object when the API ‘query’ is found.
Icon | Description |
---|---|
![]() |
Node.js entity |
![]() |
Node.js entity operation |
![]() |
TypeScript 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:
import Sequelize from '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(
{ lastName: 'Doe' },
);
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 ‘Node.js Entity’ objects, two ‘Node.js Entity Operation’ objects, and a ‘SQL Query’ object are created. A ‘relyOn’ link is added when entity ‘user’ is defined using a class extending ‘Sequelize.Model’. The SQL Analyzer links these entity operations and this query with the corresponding tables. In the present case, this extension creates two ‘useSelect’ and a ‘useUpdate’ links to the missing tables ‘Users’ and ‘post’: