On the Backend side, Sequelize allows you to create database query requests from a specific model.
To send querying from a client like Angular, a JSON can be sent to the backend and can be converted by the Convert2Sequelize module in order to create the final Sequelize query.
Sequelize also offers to perform raw queries using SQL queries . Convert2Sequelize module converts the JSON to generate the SQL query.
// Example of request
let whereJSON = [
[
"Imei",
"not like",
"'%33680090%'"
],
"and",
[
[
"EnrollmentStatus",
"=",
"Unnrolled"
],
"or",
[
"EnrollmentStatus",
"=",
"Enrolled"
],
]
]
$ npm install @amn31/convert2sequelize
How use Convert2Sequelize ?
import { CompleteConditions , Convert2Sequelize} from "@amn31/convert2sequelize"
// Create instance
const convert = new Convert2Sequelize();
/* Example: 1 */
// Convert JSON
let whereSequelize = convert.convertToSequelize(whereJSON);
// Example with findAndCountAll
dataModel.findAndCountAll( {
// the where has been converted
where: whereSequelize,
attributes: [
[Sequelize.fn('DISTINCT', Sequelize.col('isLeasing')), 'distinct_Leasing']
]
});
/* Example: 2 */
// Convert JSON to SQL :
// ( Imei not like '%33680090%' ) and ( ( EnrollmentStatus = 'Enrolled' ) or ( EnrollmentStatus = 'Unenrolled' )
// Sequelize can be used for Raw Queries
let SQLquery = 'SELECT * From Users WHERE ' + convert.convertToSQL(whereJSON);
const { QueryTypes } = require('sequelize');
const users = await sequelize.query(SQLquery, { type: QueryTypes.SELECT });
and
or
=
!=
>
<
>=
<=
like
not like
ilike
not ilike
regex
notRegexp
iregex
not iregex
startswith
endswith
contains
isnull
isnotnull