数据表 
typescript
import { 
    createDirectus,
    readItem,
    readItems,
    rest,
    createItem,
    updateItem,
    deleteItem
} from '@directus/sdk';
const client = createDirectus('http://xxx').with(rest())1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
查询项目 
查询单个 
typescript
await client.request(
    readItem('GoodsCats', 1)	// 这里传入的是 id
)1
2
3
2
3
查询所有 
typescript
await client.request(
    readItems('GoodsCats')
)1
2
3
2
3
查询特定字段 
typescript
await client.request(
    readItems('GoodsCats', {
        fields: ['id', 'title', 'sort']
    })
)1
2
3
4
5
2
3
4
5
查询所有字段 
或者不传也可以
typescript
await client.request(
    readItems('GoodsCats', {
        fields: ['*']
    })
)1
2
3
4
5
2
3
4
5
查询嵌套字段 
typescript
await client.request(
    readItems('GoodsCats', {
        fields: ['id','title', {parent_id:['id', 'title']}]
    })
)1
2
3
4
5
2
3
4
5
自定义端点 
注意这里的括号。
typescript
await client.request((() => ({
    path:'',
    method:'GET'
})))1
2
3
4
2
3
4
typescript
interface RequestOptions {
    path: string;
    method?: HttpMethod;
    params?: Record<string, any>;
    headers?: Record<string, string>;
    body?: string | FormData;
    onRequest?: RequestTransformer;
    onResponse?: ResponseTransformer;
}1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
新增项目 
WARNING
需要在后台生成 token

token 可后台生成: 8HieiqRJuYXA9A_Q7YIO4gGrF06tU5EG,token 相关
新增单个 
- 新增单个传入 对象
- 成功返回数据
- 失败直接报错
typescript
// 需要配置 token
const client = createDirectus('http://10.10.10.10:8055')
    .with(rest())
    .with(staticToken('kz73JxxwwiCNq9O5AVLaenpnf9NkXvYw')	
    
// 操作
const cat: {
    title: string,
    summarize?: string | null
    sort?: number,
    parent_id?: number | null
} = {
    title: '这里是标题'
};          
          
await client.request(createItem('GoodsCats', cat))	1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
新增多个 
- 新增多个传入 数组
- 成功返回新增的数组
- 失败直接报错
注意
后端使用了事务,也就是如果有一个新增失败,则都不会新增
typescript
const cats:CAT[] = [{title:'t1'},{title:'t2'}];
await client.request(createItem('GoodsCats', cats))	1
2
3
2
3
更新项目 
更新单个 
- 成功返回修改后的数据
- 失败直接报错
updateItem(collection_name, item_id, partial_item_object)
typescript
await client.request(updateItem ('GoodsCats', 4, {title:'王二麻子'}))1
更新多个 
- 成功返回修改后的所有数据
- 失败直接报错
注意
如果后台没有这个字段, 更新也不会报错。
updateItems(collection_name, item_id_array, partial_item_object)
typescript
await client.request(
    updateItems('GoodsCats', [1, 2, 3, 4, 5], { sort: 5 })
)1
2
3
2
3
删除项目 
删除单个 
- 成功什么也不返回
- 不成功会报错
注意!
- 如果找不到 - id同什么也不返回。
- 如果后端有关联设置,会根据后端的关联设置进行删除 - 如果禁止删除,则删除时会报错。具体报错需要查看 err.errors
 
- 如果禁止删除,则删除时会报错。具体报错需要查看 
deleteItem(collection_name, item_id)
await client.request(
    deleteItem('GoodsCats', 1)
)1
2
3
2
3
删除多个 
- 成功什么也不返回,如果找不到 id同什么也不返回
- 不成功会报错
deleteItems(collection_name, query_object)
typescript
await client.request(
    deleteItems('GoodsCats', [9, 10])	
)1
2
3
2
3
typescript
await client.request(
    deleteItems('GoodsCats', {
        filter: {	
            _eq: {
                sort: 5
            }
        }
    })
)1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
 < ~/ > MyNote
< ~/ > MyNote