Skip to main content

Sequelize

Class for working with Microsoft SQL database and sequelize.

note

Class should be used in backend

Import

const { Sequelize } = require("js-ts-kit");

Connecting To Database

import sequelize from "sequelize";
import { Sequelize } from "js-ts-kit";

const dbUser = "";
const dbPassword = "";
const dbName = "";
const dbHost = "";
const sequelizeClass = new Sequelize(
sequelize,
dbHost,
dbName,
dbUser,
dbPassword,
{
logging: (...msg) => console.log(msg),
dialectOptions: {
encrypt: true,
options: { trustServerCertificate: true, requestTimeout: 300000 },
ssl: {
require: true,
rejectUnauthorized: false,
},
},
},
);

async function main() {
await sequelizeClass.authenticate();
}

Executing Stored Procedure

import sequelize from "sequelize";
import { Sequelize } from "js-ts-kit";

const dbUser = "user";
const dbPassword = "password";
const dbName = "database";
const dbHost = "database.domain.com";
const sequelizeClass = new Sequelize(
sequelize,
dbHost,
dbName,
dbUser,
dbPassword,
{
logging: (...msg) => console.log(msg),
dialectOptions: {
encrypt: true,
options: { trustServerCertificate: true, requestTimeout: 300000 },
ssl: {
require: true,
rejectUnauthorized: false,
},
},
},
);

async function main() {
try {
await sequelizeClass.authenticate();
await sequelizeClass.executeStoredProcedure(
"EXEC usp_getUser :id",
{ id: 1 },
sequelize.QueryTypes.SELECT,
);
} catch (err) {
console.error(err);
}
}

Executing SQL

import sequelize from "sequelize";
import { Sequelize } from "js-ts-kit";

const dbUser = "user";
const dbPassword = "password";
const dbName = "database";
const dbHost = "database.domain.com";
const sequelizeClass = new Sequelize(
sequelize,
dbHost,
dbName,
dbUser,
dbPassword,
{
logging: (...msg) => console.log(msg),
dialectOptions: {
encrypt: true,
options: { trustServerCertificate: true, requestTimeout: 300000 },
ssl: {
require: true,
rejectUnauthorized: false,
},
},
},
);

async function main() {
try {
await sequelizeClass.authenticate();

const result = await sequelizeClass.executeSQL(
`
DECLARE @success bit;
DECLARE @successMessage nvarchar(255);
EXEC usp_getUser :id, @success OUTPUT, @successMessage OUTPUT;
SELECT @success AS success, @successMessage AS successMessage;
`,
{ type: sequelize.QueryTypes.SELECT, replacements: { id: 1 } },
);

const status = result[result.length - 1];
if (!status.success) {
throw new Error(status.successMessage);
}
} catch (err) {
console.error(err);
}
}

Reference

Create Object

new Sequelize(sequelize, username, password, database, host, options = {})

NameTypeDefault ValueDescription
sequelizeinstance from importing sequelize package
hoststringhost of database
databasestringname of database
usernamestringusername for authenticating against database
passwordstringpassword for authenticating agaomst database
optionsobject{}object for options

Object Properties

NameTypeStatic
sequelizeno

Methods

authenticate()

Parameters

No parameters.

Returns

Nothing is returned.

executeSQL(sqlString, options)

Parameters
NameTypeDescription
sqlStringstringSQL code
optionsobject for QueryOptionsOptions for Sequelize#query
Returns
  • Type: Promise

  • Description: result from executing given sql string

executeStoredProcedure(sqlString, valuesJson, queryType)

Parameters
NameTypeDescription
sqlStringstringSQL statement for calling stored procedure with named parameter replacements
valuesJsonobject for replacementsnamed parameter replacements in the format :param.
queryTypeenum of QueryTypestype of query for stored procedure
Returns
  • Type: Promise

  • Description: result from executing given stored procedure string