iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0
佛心分享-SideProject30

最近的工程師真沒用系列 第 23

第二十三天-怪物資訊分享 API 與DB

  • 分享至 

  • xImage
  •  

老樣子先建立個 DB 資料表


npx wrangler d1 migrations create problytic-common create_share_datas_stats

裡面的內容寫

CREATE TABLE share_datas_stats (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    user_id BIGINT NOT NULL,
    monsters_id VARCHAR(128) NOT NULL,
    monsters_name VARCHAR(512) NOT NULL,
    monsters_drop_id VARCHAR(128) NOT NULL,
    monsters_drop_name VARCHAR(512) NOT NULL,
    ref_number BIGINT NOT NULL,
    create_time DATETIME DEFAULT  CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES client_users(id) ON DELETE CASCADE
);

裡面的內容其實我很掙扎,到底要不要複雜化?還是一張表搞定就好

但我覺得就先一張表搞定吧,不要過度最佳化

我們執行遷移

npx wrangler d1 migrations apply  problytic-common --local

最後加上 API

import type { RequestHandler } from './$types';


export const POST: RequestHandler = async ({ request, platform, locals }) => {
	const user_id = locals.userId;
	if (user_id) {
		const { monsters_id, monsters_name, monsters_drop_id, monsters_drop_name, ref_number } =
			await request.json();

		const insert_stmt = await platform.env.DB.prepare(
			'INSERT INTO share_datas_stats(user_id, monsters_id,monsters_name,monsters_drop_id,monsters_drop_name,ref_number) VALUES (?, ?,?,?,?,?)'
		);
		await insert_stmt
			.bind(user_id, monsters_id, monsters_name, monsters_drop_id, monsters_drop_name, ref_number)
			.run();
		return new Response(JSON.stringify({ message: 'Register success' }), { status: 201 });
	}
	return new Response(JSON.stringify({ message: 'need login' }), { status: 404 });
};

今天的情緒抒發:
我覺得做這種全端框架的人好猛喔,任何資料的交換都要清楚欸,到底哪些是前哪些是後都要清楚


上一篇
第二十二天-怪物資訊分享上傳畫面
下一篇
第二十四天-Cloudflare Wokers 部屬初體驗
系列文
最近的工程師真沒用26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言