Typeorm for egg
TypeORM plugin for Egg.js.
[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]
[npm-image]: https://img.shields.io/npm/v/@forsigner/egg-typeorm.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@forsigner/egg-typeorm
[download-image]: https://img.shields.io/npm/dm/@forsigner/egg-typeorm.svg?style=flat-square
[download-url]: https://npmjs.org/package/@forsigner/egg-typeorm
``bash`
$ yarn add @forsigner/egg-typeorm mysql
`ts`
// {app_root}/config/plugin.ts
const plugin: EggPlugin = {
typeorm: {
enable: true,
package: '@forsigner/egg-typeorm',
},
}
`ts`
// {app_root}/config/config.default.ts
config.typeorm = {
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: '123456',
database: 'test',
synchronize: true,
logging: false,
entities: ['app/entity/*/.ts'],
migrations: ['app/migration/*/.ts'],
subscribers: ['app/subscriber/*/.ts'],
cli: {
entitiesDir: 'app/entity',
migrationsDir: 'app/migration',
subscribersDir: 'app/subscriber',
},
}
`bash`
├── controller
│ └── home.ts
├── entity
├── Post.ts
└── User.ts
`ts
// app/entity/User.ts
import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm'
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number
@Column()
name: string
}
`
`ts`
// in controller
export default class UserController extends Controller {
public async index() {
const { ctx } = this
ctx.body = await ctx.repo.User.find()
}
}
`ts``
// in controller
export default class UserController extends Controller {
public async index() {
const { ctx } = this
const firstUser = await ctx.repo.User.createQueryBuilder('user')
.where('user.id = :id', { id: 1 })
.getOne()
ctx.body = firstUser
}
}
Please open an issue here.