sequelize-ts-entity
v1.0.9
Published
This project helps you to build sequelize models with typescript with different concept. Instead of building models with json, you can create typescript classes to represent a strongly type model.
Downloads
2
Readme
Sequelize typescript entity
This project helps you to build sequelize models with typescript with different concept. Instead of building models with json, you can create typescript classes to represent a strongly type model.
Installing
sequelize-ts-entity is completely on top of sequelize, so you can add this dependency to your typescript project:
npm install sequelize-ts-entity --save-dev
Starting example
This repo has tests inside. Please clone the repository, install dependencies and run test:
git clone https://github.com/torabian/sequelize-ts-entity
cd sequelize-ts-entity
npm install
npm start
Implemention described below step by step.
Import sequelize-ts-entity
You need to import some set of classes and functions from sequelize-ts-entity library, also including Sequelize itself.
import {STRING, EntityModel} from "sequelize-ts-entity";
const Sequelize = require("sequelize");
Create a database connection
Normally you need to create a connection with database before using Sequelize. do it as normal:
const connection = new Sequelize('mysql://root:root@localhost:3306/nwsclub');
Defining a model
Here is the different part. Instead of creating the Sequelize way a model, like:
var User = sequelize.define('user', {
firstName: {
type: Sequelize.STRING,
field: 'first_name' // Will result in an attribute that is firstName when user facing but first_name in the database
},
lastName: {
type: Sequelize.STRING
}
}, {
freezeTableName: true // Model tableName will be the same as the model name
});
Now you can define by extending the EntityModel
:
/**
* Defining new modeling system
*/
class UserModel extends EntityModel {
@STRING()
public Firstname() {
// This will automatically generate first name
}
@STRING()
public Lastname() {
// this will automatically generate last name
}
public Action1() {
return "This not a field"
}
}
let User = UserModel.GetInstance("user" , connection);
Using model
Now you can continue normally with User object to query. for more information about Sequelize functions, check: http://docs.sequelizejs.com/en/v3/docs/getting-started/
User.sync({force: true}).then(function () {
// Table created
return User.create({
Firstname: 'John',
Lastname: 'Hancock'
});
}).then(function () {
User.findOne().then(function (data) {
console.log("Hello: " , data.dataValues);
})
});