Skip to content

后端联调开发

本项目使用 PocketBase SDK 与后端进行交互。

src/lib/pocketbase.ts 已经导出了 pb 实例,直接使用即可。

主要开发模式如下:

1. 基础调用

在组件中通过 pb 实例访问集合:

tsx
import { pb } from '@/lib/pocketbase';

// 获取列表
const records = await pb.collection('your_collection').getList(1, 20, {
    filter: 'status = "active"',
    sort: '-created',
});

// 创建记录
const record = await pb.collection('your_collection').create({
    title: 'Hello World',
    user: pb.authStore.model?.id,
});

2. 文件上传与展示

  • 上传:使用 FormData 对象。
  • 展示:使用 pb.files.getURL(record, filename) 生成完整 URL(或通过 pb.baseUrl 自行拼接)。
tsx
const formData = new FormData();
formData.append('avatar', fileInput.files[0]);
await pb.collection('users').update('RECORD_ID', formData);

// 获取图片 URL
const url = pb.files.getURL(record, record.avatar);

3. 实时订阅

如果功能需要实时更新(如聊天、通知),可以使用 subscribe

tsx
useEffect(() => {
    pb.collection('your_collection').subscribe('*', (e) => {
        console.log(e.record); // 实时接收更新
    });
    return () => { pb.collection('your_collection').unsubscribe(); };
}, []);

4. 调试建议

  • 使用浏览器控制台查看 Network 请求。PocketBase 的请求通常是标准的 RESTful 调用。
  • 检查 pb.authStore.isValid 确认登录状态。
  • 如果请求返回 403,请检查 PocketBase 后端的 API Rules 配置是否允许当前用户的角色访问。