در این پست نحوه اتصال nextjs به دیتابیس mysql را بررسی میکنیم.
برای اتصال به دیتابیس نیازی به دیگر فریمورکها یا زبانهای برنامهنویسی سمت سرور مانند nodejs و php نیست.
ابتدا یک سرور mysql راهاندازی و دیتابیس خود را به آن اضافه میکنیم: در این مثال من از نرمافزار xampp استفاده کردم. دیتابیس mysql را میتوان به روشهای دیگری مانند نصب مستقیم یا استفاده از داکر هم راهاندازی کرد.
برای شروع استفاده از mysql در nextjs ابتدا باید کتابخانهای مانند serverless-mysql را نصب کنیم :
npm install serverless-mysql
فایل db.js را به سورس پروژه nextjs خود اضافه میکنیم:
import mysql from 'serverless-mysql'; const db = mysql({ config: { host: 'localhost', port: '3306', database: 'jabira', user: 'root', password: '', } }); export default async function excuteQuery({ query, values }) { try { const results = await db.query(query, values); await db.end(); return results; } catch (error) { return { error }; } }
تابع executeQuery به ما کمک میکند بتوانیم کوئری های sql مورد نیاز خود را اجرا کنیم.
اکنون به سراغ فایل page.js خود رفته و از تابع executeQuery برای ارسال درخواست به پایگاه داده استفاده میکنیم :
import excuteQuery from "@/db" export default async function Home() { const result = await excuteQuery({ query: 'SELECT * FROM `pages`;', values: [], }); return ( <Component dbData={result} />) }