• Stars
    star
    108
  • Rank 310,050 (Top 7 %)
  • Language
    TypeScript
  • Created over 7 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

TypeORM and Routing-Controllers integration library.

routing-controllers integration with TypeORM

This extension for TypeORM provides handy decorators that can be used with routing-controllers.

Installation

  • Install module:

npm install typeorm-routing-controllers-extensions --save

  • Install routing-controllers:

npm install routing-controllers --save

  • That's all, start using decorators!

Usage

All decorators can be used on properties and constructor arguments, e.g. you can use both property and constructor injection.

@EntityFromParam

Creates entity from the request parameter.

Example:

import {JsonController, Get} from "routing-controllers";
import {EntityFromParam} from "typeorm-routing-controllers-extensions";
import {User} from "../entity/User";

@JsonController()
export class UserController {

    @Get("/users/:id")
    get(@EntityFromParam("id") user: User) {
        return user;
    }

}

@EntityFromQuery

Creates entity from the request query parameter.

Example:

import {JsonController, Get} from "routing-controllers";
import {EntityFromQuery} from "typeorm-routing-controllers-extensions";
import {User} from "../entity/User";

@JsonController()
export class UserController {

    @Get("/users")
    get(@EntityFromQuery("id") user: User) {
        return user;
    }

}

@EntityFromCookie

Creates entity from the request cookie.

Example:

import {JsonController, Get} from "routing-controllers";
import {EntityFromCookie} from "typeorm-routing-controllers-extensions";
import {User} from "../entity/User";

@JsonController()
export class UserController {

    @Get("/users")
    get(@EntityFromCookie("userId") user: User) {
        return user;
    }

}

@EntityFromBody

Creates entity from the request body.

Example:

import {JsonController, Post} from "routing-controllers";
import {EntityFromBody} from "typeorm-routing-controllers-extensions";
import {User} from "../entity/User";

@JsonController()
export class UserController {

    @Post("/users")
    save(@EntityFromBody() user: User) {
        return this.userRepository.persist(user);
    }

}

@EntityFromBodyParam

Creates entity from the request's body parameter.

Example:

import {JsonController, Post} from "routing-controllers";
import {EntityFromBodyParam} from "typeorm-routing-controllers-extensions";
import {User} from "../entity/User";

@JsonController()
export class UserController {

    @Post("/users")
    save(@EntityFromBodyParam("user") user: User) {
        return this.userRepository.persist(user);
    }

}

Decorators Options

Each decorator accepts EntityParamOptions which has following options:

  • connection?: string

Name of the connection to be used in TypeORM. By default, its "default" connection.

  • required: boolean

Indicate if this parameter's value is required. If its required and client didn't pass a value, routing-controllers will throw an error.

  • parse: boolean

Specifies "parseJson" option to routing-controllers.

  • type: Function

Entity type. Automatically retrieved from entity param's type, but in some cases, for example if you are using array of entities it should be passed explicitly.

  • property: boolean

Property to find by. If not specified, then entity will be fetched by its primary keys.

Samples

Take a look on samples in ./sample for examples of usages.

More Repositories

1

typeorm

ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
TypeScript
33,230
star
2

typescript-express-example

Example how to use Express and TypeORM with TypeScript
TypeScript
350
star
3

typescript-koa-example

Example how to use Koa and TypeORM with TypeScript.
TypeScript
193
star
4

typescript-example

Example of typeorm usage
TypeScript
135
star
5

javascript-example

Example how to use TypeORM with JavaScript - ES5, ES6, ES7, ESNext.
JavaScript
103
star
6

mongo-typescript-example

Example how to use TypeORM with MongoDB using TypeScript.
TypeScript
96
star
7

typeorm.github.io

Repository for typeorm documentation website.
JavaScript
70
star
8

ionic-example

Example project to demonstrate TypeORM in an Ionic app
TypeScript
68
star
9

react-native-example

Example project to demonstrate TypeORM with React Native.
TypeScript
61
star
10

babel-example

Example how to use TypeORM with JavaScript + Babel.
JavaScript
53
star
11

browser-example

Example how to use TypeORM in the browser with WebSQL.
TypeScript
45
star
12

electron-typescript-example

Example how to use TypeORM in Electron Desktop Application using TypeScript.
HTML
35
star
13

expo-example

Example of using the Expo driver with TypeORM
TypeScript
30
star
14

cordova-example

Example project to demonstrate TypeORM in a Cordova app
TypeScript
19
star
15

nativescript-vue-typeorm-sample

JavaScript
19
star
16

electron-javascript-example

Example how to use TypeORM in Electron Desktop Application using JavaScript.
HTML
9
star
17

cockroachdb-example

Example project to demonstrate TypeORM with CockroachDB.
TypeScript
8
star