ฟังก์ชัน Next.js คืออะไร เหตุใดจึงสำคัญ
วันนี้ ทีมงาน Vercel ได้ประกาศฟังก์ชัน Next.js Edge ฟังก์ชัน Edge ช่วยให้นักพัฒนาสามารถเรียกใช้โค้ดของตนที่เซิร์ฟเวอร์ที่กระจายไปทั่วโลก ซึ่งหมายความว่ารหัสของคุณจะถูกดำเนินการที่ตำแหน่งที่ใกล้กับผู้ใช้ของคุณมากที่สุด คุณสามารถนึกถึงฟังก์ชัน edge เป็นฟังก์ชันแบบไร้เซิร์ฟเวอร์ซึ่งทำงานที่โครงสร้างพื้นฐาน CDN ฟังก์ชัน Edge มีข้อดีดังต่อไปนี้:
- Global low latency:เนื่องจากโค้ดถูกจำลองไปยังตำแหน่งต่างๆ ทั่วโลก (PoP:จุดแสดงตน) ผู้ใช้ที่ใดก็ได้ในโลกจะพบกับความหน่วงแฝงต่ำ ลูกค้าแต่ละรายจะดึงการตอบสนองจากเซิร์ฟเวอร์ที่ใกล้ที่สุด
- ไม่มีการเริ่มเย็น:ผู้ให้บริการโครงสร้างพื้นฐานของ Edge ใช้ V8 Isolates ซึ่งกำจัดการเริ่มเย็น นี่หมายถึงการเริ่มต้นที่รวดเร็วขึ้นมาก
การเริ่มต้นใช้งานฟังก์ชัน Next.js
ที่นี่เราจะเขียนฟังก์ชันขอบ Next.js ซึ่งจะแสดงคำทักทายที่กำหนดเองขึ้นอยู่กับตำแหน่งของลูกค้า เราจะโหลดข้อความทักทายจาก Upstash Redis
ตรวจสอบ repo และการสาธิต
1
สร้างแอปพลิเคชัน Next.js และติดตั้ง Upstash Redis:
npx create-next-app@latest --typescript
cd nextjs-edge
npm install @upstash/redis
2
สร้างฐานข้อมูล Redis:
สร้างฐานข้อมูลทั่วโลกสำหรับความหน่วงแฝงของขอบที่ดีที่สุดใน Upstash Console เชื่อมต่อกับฐานข้อมูลของคุณด้วย redis-cli และเพิ่มข้อมูลคำทักทายดังต่อไปนี้:
global-promoted-chicken-30286.upstash.io:30286> set GB "Ey up?"
OK
global-promoted-chicken-30286.upstash.io:30286> set US "Yo, what’s up?"
OK
global-promoted-chicken-30286.upstash.io:30286> set TR "Naber dostum?"
OK
global-promoted-chicken-30286.upstash.io:30286> set DE "Was ist los?"
OK
global-promoted-chicken-30286.upstash.io:30286> set IN "Namaste"
OK
3
สร้างฟังก์ชันขอบ:
สร้างเพจ/api/_middleware.ts ดังนี้:
import type { NextFetchEvent, NextRequest } from "next/server";
import { Redis } from "@upstash/redis";
export async function middleware(req: NextRequest, ev: NextFetchEvent) {
const country = req.geo.country || "US";
const redis = new Redis({
url: "UPSTASH_REDIS_REST_URL",
token: "UPSTASH_REDIS_REST_TOKEN",
});
const result = await redis.get<string>(country);
const greeting = result || "Hello World!";
return new Response(greeting);
}
คัดลอกและแทนที่ UPSTASH_REDIS_REST_URL
และ UPSTASH_REDIS_REST_TOKEN
จากหน้าฐานข้อมูลของคุณใน Upstash Console
4
เรียกใช้และปรับใช้:
เรียกใช้แอปพลิเคชันของคุณในเครื่อง:
npm run dev
ตรวจสอบ:https://localhost:3000/api/hello
คุณจะเห็นว่า req.geo
ไม่ได้กำหนดไว้ ปรับใช้แอปของคุณกับ Vercel เพื่อดูว่าทำงานอย่างไรที่โครงสร้างพื้นฐาน Edge:
vercel deploy
ตรวจสอบ:https://nextjs-edge-enesakar-upstash.vercel.app/api/hello
คุณสามารถตรวจสอบคำทักทายจากสถานที่ต่างๆ ได้โดยใช้ VPN
บทสรุป
Next.js Edge เป็นข่าวดีสำหรับนักพัฒนาที่กำลังสร้างแอปพลิเคชันที่รวดเร็วทั่วโลก Upstash Redis เป็นบริการข้อมูลที่ได้รับการออกแบบและปรับให้เหมาะสมกับฟังก์ชัน Edge
ลิงค์ที่มีประโยชน์ที่นี่:
- เอกสารประกอบฟังก์ชัน Next.js Edge:https://vercel.com/docs/concepts/functions/edge-functions
- ตัวอย่าง Next.js Edge:https://github.com/vercel/examples/tree/main/edge-functions
แจ้งให้เราทราบความคิดเห็นของคุณบน Twitter หรือ Discord