sx-sequelize-api
TypeScript icon, indicating that this package has built-in type declarations

2.1.0 • Public • Published

Sequelize Rest Api Helper

Create Rest Api for Sequelize Models easily.

Info

install

npm i --save sx-sequelize-api

Peer Dependencies

  • express
  • sequelize
  • sequelize-typescript

Functions

  • Sequelize Model Rest Api

Usage Example

Model

// models/resource-cpu.ts
import { Table, Column, Model, DataType, CreatedAt, UpdatedAt, AutoIncrement, PrimaryKey } from 'sequelize-typescript';

@Table({
    tableName: 'resource-cpu',
    modelName: 'resource-cpu',
    freezeTableName: true,
    timestamps: false,
})
export default class ResourceCpu extends Model<ResourceCpu> {
    @AutoIncrement
    @PrimaryKey
    @Column(DataType.BIGINT)
    id: number;

    @Column({
        type: DataType.DATE,
    })
    timestamp: Date;

    @Column({
        type: DataType.STRING(32),
        allowNull: false,
    })
    process: string;

    @Column({
        type: DataType.FLOAT,
        allowNull: false,
    })
    value: number;
}

Api

// api/resource-cpu.ts
import * as express from 'express';
import { ModelRestApi } from 'sx-sequelize-api';
import Model from '../db/models/resource-cpu';
import { Sequelize } from 'sequelize-typescript';

export default function api(connection: Sequelize): express.Router {
    let router: express.Router = express.Router();
    let DbModel = Model;
    let modelApi = new ModelRestApi(DbModel, connection);

    // router.use(authMiddleware());

    router.get('/', modelApi.getAll());
    router.get('/count', modelApi.count());
    router.get('/:id', modelApi.getById());

    router.post('/', modelApi.create());
    router.put('/:id', modelApi.updateById());
    router.delete('/:id', modelApi.deleteById());


    return router;
}

Readme

Keywords

Package Sidebar

Install

npm i sx-sequelize-api

Weekly Downloads

0

Version

2.1.0

License

MIT

Unpacked Size

37.5 kB

Total Files

18

Last publish

Collaborators

  • doganmurat