要保存聊天记录,您需要在Cloudflare Workers中配置KV命名空间:
步骤1:创建KV命名空间
在Cloudflare仪表板中:
- 转到 Workers & Pages > KV
- 点击"创建命名空间"
- 输入名称:
family-chat-data
- 点击"添加"
步骤2:绑定KV到Worker
在您的Worker设置中:
- 选择"设置" > "变量"
- 在"KV 命名空间绑定"部分点击"编辑变量"
- 点击"添加绑定"
- 设置:
- 变量名称:
CHAT_KV
- KV 命名空间:选择您创建的命名空间
步骤3:部署Worker代码
在Worker代码中添加以下处理程序:
// 使用Workers KV存储聊天数据
const CHAT_STORE = "family_chat_data"
async function handleChatAPI(request, env) {
const url = new URL(request.url);
// 获取消息
if (url.pathname === '/api/messages' && request.method === 'GET') {
const messages = await env.CHAT_KV.get(CHAT_STORE, 'json') || [];
return new Response(JSON.stringify(messages), {
headers: { 'Content-Type': 'application/json' }
});
}
// 发送消息
if (url.pathname === '/api/send' && request.method === 'POST') {
const data = await request.json();
const messages = await env.CHAT_KV.get(CHAT_STORE, 'json') || [];
const newMessage = {
id: Date.now(),
sender: data.sender,
content: data.content,
timestamp: new Date().toISOString(),
file: data.file || null
};
messages.push(newMessage);
await env.CHAT_KV.put(CHAT_STORE, JSON.stringify(messages.slice(-500)));
return new Response(JSON.stringify({ success: true }), {
headers: { 'Content-Type': 'application/json' }
});
}
return new Response('Not found', { status: 404 });
}