mirror of
https://github.com/nocobase/nocobase
synced 2024-11-15 16:46:31 +00:00
d5d0e1036b
* docs: add docs * ignore dumi theme test * fix: error TS2717: Subsequent property declarations must have the same type. * update docs * deploy gh-pages * plugins docs * hash & cname * exportStatic * ssr * vercel * vercel * fix: deploy vercel * Delete vercel.json * docs * fix APP_DIST * on master branch
2.3 KiB
2.3 KiB
title | order |
---|---|
@nocobase/server | 5 |
@nocobase/server
介绍
提供最小核心的 NocoBase 服务
安装
yarn add @nocobase/server
Usage
import { Application } from '@nocobase/server';
const api = new Application({
database: {},
resourcer: {},
});
// 配置数据表
api.database.table({
name: 'demos',
fields: [
{ type: 'string', name: 'name' },
],
});
await api.database.sync();
app.listen(3000);
HTTP API:
GET http://localhost:3000/api/demos
POST http://localhost:3000/api/demos
GET http://localhost:3000/api/demos/1
PUT http://localhost:3000/api/demos/1
DELETE http://localhost:3000/api/demos/1
SDK:
import API from '@nocobase/sdk';
const api = new API({
baseUrl: 'http://localhost:3000/api'
});
// 细节待定
api.resource('demos').list();
api.resource('demos').create();
api.resource('demos').get();
api.resource('demos').update();
api.resource('demos').destroy();
Middlewares
initializeActionParams
初始化 action.params
appDistServe
为 app dist 提供静态文件代理服务
dbResourceRouter
resource 动态初始化,如果 resource 不存在,从 database 里同步。
与 resourcer.koaRestApiMiddleware 方法存在大量重复,需要把 database 与 resource 的同步逻辑提炼出来demoBlacklistedActions
actions 黑名单
app.use(demoBlacklistedActions({
blacklist: [],
}));
API
Server
Server 继承 Koa,更多用法可查阅 Koa API
server.constructor
初始化 server 实例
server.database
当前 server 实例的 database
server.resourcer
当前 server 实例的 resourcer
server.pluginManager 未实现
当前 server 实例的 pluginManager
PluginManager 未实现
插件管理器
不同 server 实例也可能需要 PluginManager,后续 CLI 和后台可管理也都需要,插件管理器独立出来处理比较合适。pluginManager.register(name, options)
注册插件
pluginManager.has(name)
判断插件是否存在
pluginManager.get(name)
获取当前插件实例
pluginManager.load()
加载插件
pluginManager.reload()
重载插件