| ... | ... | @@ -20,5 +20,26 @@ |
|
|
|
- fixture.ts - 系统启动时自动调用的,主要用户创建默认admin用户
|
|
|
|
- helper.ts - 一些辅助功能逻辑
|
|
|
|
- userService.ts - 一些可以修改的用户相关逻辑,比如用户登录,修改密码等
|
|
|
|
- routers - 绝大部分API都是通过graphql,只有少数在routers目录下建立新目录,现在的file.ts用于文件上传
|
|
|
|
- routers - 绝大部分API都是通过graphql,只有少数在routers目录下建立新目录,现在的file.ts用于文件上传,可以配合oss使用
|
|
|
|
- index.ts - main文件,一般不需要修改
|
|
|
|
|
|
|
|
# 项目开发指南
|
|
|
|
- 一般的项目框架生成之后,在后端宝指定数据表的名称和字段,后端宝会自动在dbschema目录下生成对应的json描述文件,用于与mongoose hookup到一起
|
|
|
|
- 后端宝还会在graphql目录下生成对应的graphql文件,一般项目自定义的graphql query和mutation应定义在__custom.ts文件中
|
|
|
|
- 大部分业务逻辑可以通过编写entity的hook来实现,系统提供了以下hook类型,所有hook都有resolve,reject,result,err, context这五个参数。其中resolve必须保证在希望继续的分支下进行调用,reject必须在出错的分支下进行调用,result指代调用的参数object或者查询的结果。context是执行上下文object,具体参考jz-api-core文档中的描述
|
|
|
|
- BeforeQueryItem - 根据id获取某实例前
|
|
|
|
- AfterQueryItem - 根据id获取某实例前
|
|
|
|
- BeforeQueryList - 查询entity列表前
|
|
|
|
- AfterQueryList - 获取entity列表之后,这时result就是要返回的entity list对象
|
|
|
|
- BeforeSave - 保存前,这时result是当前将要被保存到数据库的object
|
|
|
|
- AfterSave - 保存成功之后,result是被保存成功的对象
|
|
|
|
- BeforeUpdate - 到数据库更新entity之前
|
|
|
|
- AfterUpdate - 到数据库更新entity之后
|
|
|
|
- 具体的某个entity的写法就是在这8个hook前加上entity type的名字,比如 blogBeforeSave, messageAfterSave,下面是一个例子
|
|
|
|
```
|
|
|
|
export const messageBeforeSave = (resolve, reject, result, err, context: Common.Context) => {
|
|
|
|
let me = context.me;
|
|
|
|
result['fromUserId'] = me._id;
|
|
|
|
resolve(result);
|
|
|
|
}
|
|
|
|
``` |
|
|
\ No newline at end of file |