tachybase_todo/packages/server/src/index.ts
2021-08-13 09:57:21 +08:00

47 lines
1.1 KiB
TypeScript

import { actions, middlewares as m } from '@nocobase/actions';
import Application from './application';
import bodyParser from 'koa-bodyparser';
import cors from '@koa/cors';
import { dbResourceRouter } from './middlewares';
export * from './application';
export * from './middleware';
export * as middlewares from './middlewares';
export default {
/**
* 这部分还比较杂,细节待改进
*
* @param options
*/
create(options: any): Application {
console.log(options);
const app = new Application(options);
app.use(bodyParser());
app.use(cors({
exposeHeaders: ['content-disposition'],
}));
app.resourcer.registerActionHandlers({ ...actions.common, ...actions.associate });
app.use(async (ctx, next) => {
ctx.db = app.database;
ctx.database = app.database;
await next();
});
app.resourcer.use(m.associated);
app.use(m.dataWrapping);
app.use(dbResourceRouter({
database: app.database,
resourcer: app.resourcer,
...(options.resourcer||{}),
}));
return app;
}
}