اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

لم تقم بإنشاء الجدول في قاعدة بيانات tododb، اضغط عليها بزر الفأرة الأيمن ثم اختر Query Tool وسيتم لك نافذة استعلام جديدة متصلة بقاعدة بيانات tododb، فقم بلصق أمر CREATE TABLE وتشغيله، وسيتم إنشاء الجدول، ثم قم بتحديث قاعدة البيانات ليظهر لك

  • 0
نشر

مرحباً،

السبب هو عدم كتابة الكود في المكان الصحيح داخل قاعدة البيانات tododb:
لإصلاح ذلك:

  • اضغط بزر الفأرة الأيمن على قاعدة البيانات tododb.
  • اختر Query Tool لفتح نافذة استعلام مرتبطة بهذه القاعدة.
  • الصق أمر الإنشاء وشغّله:
CREATE TABLE todo ( 
  todo_id SERIAL PRIMARY KEY, 
  description VARCHAR(255) NOT NULL, 
  completed BOOLEAN DEFAULT FALSE 
);

بعد التنفيذ قم بتحديث (Refresh) قاعدة البيانات، وستجد الجدول قد ظهر بشكل صحيح.

بالتوفيق

  • 0
نشر
بتاريخ 3 دقائق مضت قال Zen Eddin Allaham:
import {Pool} from 'pg';

const pool = new Pool({
    user: "postgres",
    password: 'postgres',
    host: 'localhost',
    port: 5432,
    database: 'tododb',
})


export default pool;

بدي شرح لهذا الكود مع تركيز على الكائن Pool وما بداخله

جزاكم الله خيراً

الكود مسؤول عن إنشاء اتصال بقاعدة بيانات PostgreSQL من خلال مكتبة pg في Node.js.

هذا الكائن عبارة عن مجمع اتصالات (Connection Pool)، وظيفته أنه يدير مجموعة من الاتصالات بقاعدة البيانات.

داخل الكائن Pool وضعنا إعدادات الاتصال بقاعدة البيانات:

  • user: اسم المستخدم الخاص بقاعدة البيانات (هنا "postgres").
  • password: كلمة المرور الخاصة بالمستخدم.
  • host: عنوان السيرفر الذي تعمل عليه قاعدة البيانات (هنا localhost يعني على نفس الجهاز).
  • port: رقم المنفذ الذي تستمع له قاعدة بيانات PostgreSQL (افتراضياً 5432).
  • database: اسم قاعدة البيانات التي نريد الاتصال بها (هنا "tododb").

بعدها تم إنشاء نسخة من المجمع وحفظها في pool. يتم تصديرها بـ export default pool حتى تستطيع استخدامها في أي ملف آخر وتنفّذ أوامر SQL.

بالتوفيق

  • 0
نشر
import { Router } from "express";
import pool from "../db.js";


const router = Router();

// Create a new todo

router.post('/' , async (req , res) =>{
    try{
    const {description , completed} = req.body
    const newTodo = await pool.query(
        "INSERT INTO todo (description , completed) VALUES ($1 , $2) RETURNING *",[description , completed || false]);
        res.json(newTodo.rows[0])
    }catch(e){
        res.status(500).json({message : 'Error server'})
    }
});

export default router;

في هذا الكود اريد شرحه مع تركيز على لماذا اضفنا rows[0] وماذا يحدث اذا لم نستخدمها

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...