796e73ae5a
* refactor(doc): change to new structure * docs: add database docs * docs: add collection docs * docs: add db field examples * docs(api): fix filename and menu path * docs: add database docs * docs: add db operators doc * docs: add resourcer menu * docs: add resourcer docs * docs: fix api docs * docs: refactor api menu structure * feat: update docs (#830) * feat: updates * feat: update docs * chore: ignore docs from ci Co-authored-by: Junyi <mytharcher@users.noreply.github.com> Co-authored-by: mytharcher <mytharcher@gmail.com> * docs: add database methods docs * docs: add missed api * docs: fix api docs * feat: update development docs (#833) * feat: update development docs * feat: update docs * feat: update docs * docs: add first plugin example (#834) * feat: update docs * feat: update docs * docs: fix typo Co-authored-by: chenos <chenlinxh@gmail.com>
2.5 KiB
2.5 KiB
Resource
Resource 用于定义资源实例。被 Resourcer 管理的资源实例都可以通过 HTTP 请求访问。
构造函数
用于创建 Resource 实例。通常由 Resourcer 管理器的 define()
接口调用替代,不需要直接使用。
签名
constructor(options: ResourceOptions, resourcer: Resourcer)
参数
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
options.name |
string |
- | 资源名称,对应 URL 路由中的资源地址部分。 |
options.type |
string |
'single' |
资源类型,可选项为 'single' 、'hasOne' 、'hasMany' 、'belongsTo' 、'belongsToMany' 。 |
options.actions |
Object |
- | 对资源可进行的操作列表,详见示例部分。 |
options.middlewares |
MiddlewareType | MiddlewareType[] |
- | 对当前定义资源进行任意操作访问时的中间件列表,详见示例部分。 |
options.only |
ActionName[] |
[] |
针对全局操作的白名单列表,当数组中有值时(length > 0 ),只有数组中的操作可被访问。 |
options.except |
ActionName[] |
[] |
针对全局操作的黑名单列表,当数组中有值时(length > 0 ),除数组中的操作外,其他操作可被访问。 |
resourcer |
Resourcer |
- | 所属资源管理器实例。 |
示例
app.resourcer.define({
name: 'books',
actions: {
// 扩展的 action
publish(ctx, next) {
ctx.body = 'ok';
}
},
middleware: [
// 扩展的中间件
async (ctx, next) => {
await next();
}
]
});
实例成员
options
当前资源的配置项。
resourcer
所属的资源管理器实例。
middlewares
已注册的中间件列表。
actions
已注册的操作映射表。
except
操作排除的名单列表。
实例方法
getName()
获取当前资源的名称。
签名
getName(): string
示例
const resource = app.resourcer.define({
name: 'books'
});
resource.getName(); // 'books'
getAction()
根据名称获取当前资源的操作。
签名
getAction(name: string): Action
参数
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
name |
string |
- | 操作名称。 |
示例
const resource = app.resourcer.define({
name: 'books',
actions: {
publish(ctx, next) {
ctx.body = 'ok';
}
}
});
resource.getAction('publish'); // [Function: publish]