Skip to main content
Version: 3.0.0

使用 Midway 组件

Midway 提供了一系列的组件,包含 Cache / Http / Redis 等。 而在 Midway Hooks 中,我们可以直接使用 Midway 组件,来快速实现功能。

引入组件

Midway Hooks 在 configuration.ts 中使用 createConfiguration() 来配置项目,其 Api 与 @midwayjs/decorator 提供的 @Configuration() 一致。

@midwayjs/cache 组件为例:

import {
createConfiguration,
hooks,
} from '@midwayjs/hooks';
import * as Koa from '@midwayjs/koa';
import { join } from 'path';
import * as cache from '@midwayjs/cache';

export default createConfiguration({
imports: [cache, Koa, Hooks()],
importConfigs: [
join(__dirname, 'config'),
],
});

你可以通过 imports 来导入组件,importConfigs 来导入配置文件。

使用组件

@midwayjs/cache 中,提供了 CacheManager 类来操作缓存。

在 Midway Hooks 中,你可以通过 @midwayjs/hooks 提供的 useInject(class) 来在运行时获取类的实例。

import {
Api,
Get,
useInject,
} from '@midwayjs/hooks';
import { CacheManager } from '@midwayjs/cache';

export default Api(Get(), async () => {
const cache = await useInject(
CacheManager
);

await cache.set('name', 'Midway');
const result = await cache.get(
`name`
);

return `Hello ${result}!`;
});

这里的 useInject(CacheManager)@Inject() cache: CacheManager 的功能是一致的。