Menu
CoddyTech

ערכי תצורה

חלק מהיחידה TypeScript ו-NestJS במסלול ה-Node.js של Coddy. שיעור 12 מתוך 24.

GET /tasks עומדת להחזיר את המשימות שלה עמוד אחד בכל פעם, כמו ביחידה 3. מספר המשימות שנכנסות לעמוד הוא הגדרה, ולכן עליה להגיע מסביבת הריצה במקום להיות מוקלדת בקוד. ספק ערכים רושם כל ערך תחת שם, שנקרא אסימון.

providers: [
    { provide: 'CURRENCY', useValue: process.env.CURRENCY ?? 'EUR' },
],

constructor(@Inject('CURRENCY') private readonly currency: string) {}

למחרוזת אין מחלקה ש-Nest יכול לקרוא מתוך טיפוס הפרמטר, לכן @Inject('CURRENCY') מציין את האסימון. הוא חייב להיכתב באופן זהה בשני המקומות: טעות הקלדה תעצור את האפליקציה עם השגיאה "can't resolve dependencies". ערכי סביבה הם תמיד מחרוזות; יש להמיר אותם באמצעות Number() כשצריך מספר.

challenge icon

אתגר

קל

השלב הזה פותח את פרויקט מעקב המשימות של Nest שהוכן בקורס, במקום את קובצי הפרויקט שלך מ־מודול שני (כולל src/stats/stats.module.ts). העבודה הקודמת שלך נשארת בשיעור שלה. קרא את הקבצים שסופקו לפני עריכת src/tasks/tasks.module.ts. העותק הזה כולל שירות Nest ומודול סטטיסטיקה, יחד עם קוד עימוד שסופק.

פרויקט מעקב המשימות שהוכן מוסיף עימוד ל־GET /tasks. בתוך src/tasks/tasks.module.ts, רשום ספק ערך בשם PAGE_SIZE. קרא את ערך הסביבה, השתמש ב־10 כברירת מחדל אם הוא חסר, והמר אותו למספר.

בתוך src/tasks/tasks.controller.ts, הסר את שדה pageSize הקבוע. קבל את הספק בבנאי כשדה מספרי private readonly בשם pageSize. השתמש ב־@Inject עם שם האסימון המדויק; הייבוא וקוד העימוד כבר סופקו.

נסה זאת: הפעלת Run מגדירה PAGE_SIZE=2. הבקשה GET /tasks מחזירה שני פריטים, עמוד 1, סך הכול 3 ו־2 עמודים. הבקשה GET /tasks?page=2 מחזירה את המשימה הנותרת. ללא משתנה הסביבה הזה, ברירת המחדל היא עשרה פריטים בכל עמוד.

נסו בעצמכם

import { Module } from '@nestjs/common';
import { ClockService } from './clock.service';
import { TasksController } from './tasks.controller';
import { TasksService } from './tasks.service';

@Module({
    controllers: [TasksController],
    providers: [TasksService, ClockService],
    exports: [TasksService],
})
export class TasksModule {}

כל השיעורים ביחידה TypeScript ו-NestJS

תרגלו בעצמכם: Express אונליין