العمل مع قواعد البيانات في TypeScript: PostgreSQL و MongoDB للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع قواعد البيانات في TypeScript: PostgreSQL و MongoDB للمبتدئين



TypeScript هو امتداد JavaScript ذو كتابة صارمة، يضيف الموثوقية والقدرة على التنبؤ إلى الكود. عند العمل مع قواعد البيانات، يكون TypeScript مفيدًا بشكل خاص: يمكنك تحديد أنواع الكيانات، والتحقق من صحة الاستعلامات في مرحلة التجميع، وتجنب العديد من أخطاء وقت التشغيل. في هذه المقالة، سننظر في كيفية الاتصال بقاعدتي البيانات الأكثر شيوعًا - PostgreSQL العلائقية و MongoDB الموجهة للمستندات - وتنفيذ العمليات الأساسية على البيانات. المحتوى موجه للمطورين المبتدئين الذين لديهم معرفة أساسية بـ TypeScript.



إعداد البيئة وتثبيت التبعيات



قبل كتابة الكود، يجب إعداد المشروع. أنشئ دليلاً جديدًا وقم بتهيئة المشروع:



mkdir ts-db-examplecd ts-db-examplenpm init -ynpm install typescript @types/node ts-node --save-devnpx tsc --init


الآن سنقوم بتثبيت المكتبات للعمل مع قواعد البيانات. بالنسبة لـ PostgreSQL، سنستخدم TypeORM (ORM شائع مع دعم جيد لـ TypeScript)، وبالنسبة لـ MongoDB، سنستخدم Mongoose (مكتبة لنمذجة المخططات والعمل مع MongoDB).



npm install typeorm reflect-metadata pgnpm install mongoose


سنقوم أيضًا بتثبيت أنواع Node.js وإعدادات TypeORM:



npm install @types/node --save-dev


في ملف tsconfig.json، تأكد من تفعيل الخيارات التالية:



{  "compilerOptions": {    "target": "ES2020",    "module": "commonjs",    "outDir": "./dist",    "rootDir": "./src",    "strict": true,    "esModuleInterop": true,    "experimentalDecorators": true,    "emitDecoratorMetadata": true  }}


الآن هيكل المشروع جاهز. أنشئ مجلد src وداخله ملفات للعمل مع كل قاعدة بيانات.



العمل مع PostgreSQL عبر TypeORM



إعداد الاتصال



يتيح TypeORM العمل مع قاعدة البيانات من خلال الديكورات والكيانات. لننشئ ملف src/postgres.ts ونضبط الاتصال بقاعدة بيانات PostgreSQL المحلية ts_db:



import "reflect-metadata";import { DataSource } from "typeorm";

export const AppDataSource = new DataSource({ type: "postgres", host: "localhost", port: 5432, username: "postgres", password: "password", database: "ts_db", synchronize: true, // ينشئ الجداول تلقائيًا (للتطوير فقط) logging: false, entities: ["src/entity/**/*.ts"],});


إنشاء كيان (Entity)



الكيان هو فئة يتم تعيينها إلى جدول في قاعدة البيانات. لننشئ مجلد src/entity وملف User.ts:



import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

@Entity()export class User { @PrimaryGeneratedColumn() id: number;

@Column({ length: 100 }) name: string;

@Column({ unique: true }) email: string;

@Column({ default: 18 }) age: number;}


تنفيذ عمليات CRUD



الآن سنكتب دوال لإنشاء وقراءة وتحديث وحذف المستخدمين في ملف src/postgres-crud.ts:



import { AppDataSource } from "./postgres";import { User } from "./entity/User";

async function main() { await AppDataSource.initialize(); const userRepository = AppDataSource.getRepository(User);

// CREATE — إنشاء مستخدم جديد const newUser = userRepository.create({ name: "إيفان بيتروف", email: "ivan@example.com", age: 25, }); await userRepository.save(newUser); console.log("تم إنشاء المستخدم:", newUser);

// READ — قراءة جميع المستخدمين const allUsers = await userRepository.find(); console.log("جميع المستخدمين:", allUsers);

// UPDATE — تحديث عمر المستخدم ذو id=1 const userToUpdate =

المدونات

توصيات الكتب