插件
TieJS 拥有强大的插件系统,利用插件可以更好地让业务逻辑复用,插件是 TieJS 最核心功能。
插件配置#
插件配置文件为 config/plugins.ts
:
import { PluginConfig } from '@tiejs/common'
export const configs: PluginConfig = [
{
package: '@tiejs/typeorm'
enable: true,
}
]
插件开发#
简单的插件代码示例:
import { Injectable, IPlugin } from '@tiejs/common'
@Injectable()
export default class LoggerPlugin implements IPlugin {
// 注册一个中间件
constructor(@InjectApp() private app: Application) {
let { middlewareConfig } = this.app
middlewareConfig.unshift({
name: 'logger',
// LoggerMiddleware 是一个中间件提供者(Provider)
use: LoggerMiddleware
})
}
// 服务器启动前
appDidReady() {
console.log('server will start')
}
// 配置已加载到 app
configDidLoad() {
console.log('app loaded')
}
// 所有中间件已经 use
middlewareDidReady() {
console.log('app.use(middleware) ready')
}
// 服务器启动后
serverDidReady() {
console.log('server start')
}
}
内置插件#
TieJS 内置了一下插件:
;[
{
name: 'controller',
package: '@tiejs/controller',
enable: true,
},
{
name: 'graphql',
package: '@tiejs/graphql',
enable: true,
},
{
name: 'logger',
package: '@tiejs/logger',
enable: true,
},
{
name: 'view',
package: '@tiejs/view',
enable: true,
},
]