Cloudflare Workers ve Remix.run

  • 0

 Çok oldu yazmıyorum, böyle biriksin, güzel bi seri yapıyım filan diyorum ama dememek lazım, şuraya gelişmelerimi paylaşayım. (bendeki gelişimler = gelişmelerim, haha)

Efenim Cloudflare Workers kullanarak bi güzel API yaptık, backend ile marketplaceforslack.com bot'umuzu hazırladık; sonra discord'u da yaptık, harika... Üstüne marketplaceforslack.com sitesini de yaptık, o da güzel. Ama zaten statik...

İmdiiii, sıra geldi bi ecomm sitesi yapmaya, discorddan slackten verilen ilanlar sitede çıksın, aransın filan, de mi? Açıkçası gayet basit bi şekilde cloudflare worker'ıma GET geldi, POST geldi, şu parametre var, bu aramayı yap, sonra şu HTMLi hazırlayıp dön diyebilirim, gayet basit, di mi? Basit, ama ilkel de. Ben de artık vanillayı bırakıp frameworklere merhaba diyeyim dedim. remix.run çok güzel göründü, çünkü cloudflare'i native destekliyor, hatta CLIdan yüklerken seçeneklerde var filan, neggzel. React'ın üzerine çalışıyor ama routing getirmiş, ki en güzel tarafı o, mesela

/index.js direk server'da index.php veya index.html gibi davranıyor

/listing.js oluyor domain.com/listing 

/listing.$itemId de domain.com/listing/1653829 gibi bi hal alıyor. Yani çok basit bi şekilde folder structure ile url yapısını oluşturuyorsun, bilmem anlatabildim mi.

Neyse, şimdi her şey iyi güzel ama database'imiz Cloudflare KV'nin içinde yatıyor. Çağırmamız lazım. Örneklere bakıyorum, cacık, mesela remix kendi sayfasında şunu örnek göstermiş:

import type { LoaderArgs } from "@remix-run/cloudflare";
import { json } from "@remix-run/cloudflare";
import { useLoaderData } from "@remix-run/react";

export const loader = async ({
  context,
  params,
}: LoaderArgs) => {
  return json(
    await context.PRODUCTS_KV.get(
      `product-${params.productId}`,
      { type: "json" }
    )
  );
};

export default function Product() {
  const product = useLoaderData<typeof loader>();
  return (
    <div>
      <p>Product</p>
      {product.name}
    </div>
  );
}

Tamam, teşekkürler, sağlamışsın içeriği ama uyarı veriyor arkadaş:

Yetmezmiş gibi çalıştırınca da 
TypeError: Cannot read properties of undefined (reading 'PRODUCTS_KV')

diye uyuzluk yapıyor. E arkadaş, kendi açıklaman yanlışsa, ben nası çözücem ya. ChatGPT'de bilmiyo, Bard zaten yalan, stackoverflow tek ümidim :D