รับค่า post ใน Next.js

ใน Next.js คุณสามารถรับค่า POST จากฟอร์มหรือร้อยเอสต์ (REST) API ได้โดยใช้ API routes ที่คุณสร้างขึ้นในโฟลเดอร์ pages/api. ต่อไปนี้เป็นขั้นตอนเบื้องต้นเพื่อรับค่า POST ใน Next.js:

  1. สร้าง API route: สร้างไฟล์ API route ในโฟลเดอร์ pages/api และกำหนดการจัดการคำขอ POST ในนั้น เช่น pages/api/postData.js:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// pages/api/postData.js

export default function handler(req, res) {
if (req.method === 'POST') {
const data = req.body; // ดึงข้อมูล POST จาก req.body

// ทำสิ่งที่คุณต้องการกับข้อมูลที่ได้รับ
console.log('Received data:', data);

res.status(200).json({ message: 'Data received successfully' });
} else {
res.status(405).end(); // ไม่อนุญาตให้ใช้คำขออื่นที่ไม่ใช่ POST
}
}
  1. เรียกใช้ req.body: เพื่อรับข้อมูล POST ใน Next.js คุณต้องเรียกใช้ req.body ในฟังก์ชัน handler ของ API route ตรงนี้คุณจะได้รับข้อมูลที่ถูกส่งมาในคำขอ POST.

  2. ใช้ fetch หรือ Axios จากฝั่งไคลเอนต์: เพื่อส่งคำขอ POST จากฝั่งไคลเอนต์ไปยัง API route ที่คุณสร้าง คุณสามารถใช้ fetch หรือ Axios หรือไลบรารี HTTP request อื่น ๆ เช่น axios:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// ตัวอย่างโค้ดใช้งาน Axios จากฝั่งไคลเอนต์
import axios from 'axios';

const dataToSend = {
key1: 'value1',
key2: 'value2',
};

axios.post('/api/postData', dataToSend)
.then((response) => {
console.log('Server response:', response.data);
})
.catch((error) => {
console.error('Error:', error);
});
  1. รันโปรเจ็กต์ Next.js: รันโปรเจ็กต์ Next.js ของคุณโดยใช้ npm run dev หรือ yarn dev.

  2. ทดสอบ: เมื่อโปรเจ็กต์ Next.js กำลังทำงานอยู่ ลองส่งคำขอ POST จากฝั่งไคลเอนต์ไปยัง API route ที่คุณสร้าง คุณควรจะสามารถรับข้อมูล POST และดำเนินการต่อไปตามที่คุณได้กำหนดใน handler ของ API route.

ต้องระวังความปลอดภัยของแอปพลิเคชันของคุณเมื่อรับข้อมูล POST และควรสังเกตุการตรวจสอบและการดำเนินการกับข้อมูลเพื่อป้องกันอุบัติเหตุความปลอดภัยเช่น CSRF และการสอบถาม SQL ไม่ปลอดภัยในฐานข้อมูลของคุณ.