برنامه نویسی

راه اندازی پروژه Nestjs – Community Dev

سلام backend devs …

در اینجا بیایید پروژه جدید Nestjs را با ویژگی های اساسی طی کنیم.

🟢 یک پروژه جدید ایجاد کنید

اکنون زمان ایجاد یک برنامه جدید Nestjs است. Nestjs ابزار خط فرمان بسیار جذاب برای تولید برنامه و بلوک های اصلی ساختمان را ارائه می دهد. Nestcli را به عنوان یک بسته جهانی با استفاده از مدیر بسته مورد علاقه خود نصب کنید ، سپس برنامه را تولید کنید

# add nest cli
$ pnpm add -g @nestjs/cli

# generate app
$ nest new project-name
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اکنون ، همه چیز آماده برای سفارشی کردن برنامه در صورت نیاز است. کل دیگ بخار با حداقل ویژگی ها وجود دارد. دستور زیر را اجرا کنید تا اطمینان حاصل کنید که همه چیز کار می کند ،

# start the app server
$ pnpm start:dev

# check everything works
$ curl http://localhost:3000

# you should see
Hello World!
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

🟢 یک ماژول اول ایجاد کنید

حال ، بیایید بگوییم ، شما می خواهید یک ویژگی جدید به برنامه خود اضافه کنید. به عنوان مثال ، مدیریت کاربر ، نویسنده و غیره …

تعداد کمی از دستورات CLI برای درک بر اساس نیاز وجود دارد. در فرمان یک پله وجود دارد ،

$ nest generate  

# eg. generate new module for user management, and the controller
$ nest generate module user

# generate controller
$ nest generate controller user
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

لطفاً به نام ماژول (کاربر) و نام کنترلر (کاربر) توجه کنید. این موارد باید یکسان باشند تا Nestjs بدانند که هر دو باید به یک ویژگی یکسان تولید کنند. بیایید سرویس را نیز ایجاد کنیم ،

$ nest generate service user
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اکنون ، باید پوشه جدید و دسته پرونده های ایجاد شده توسط Nestcli را ببینید ،

ماژول جدید

دستور منبع چیست؟ اگر می خواهید همزمان ویژگی CRUD را ایجاد کنید ، می توانید از آن استفاده کنید. اطمینان حاصل کنید که از هر دو گزینه استفاده می کنید ،

$ nest generate resource user
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

🟢 نحوه استفاده از بلوک های اصلی ساختمان

اکنون ، شما برای شروع برنامه نویسی ، چکوی ماژول کاربر را دارید. بیشتر از ماژول ، کنترلر و سرویس استفاده کنید. وقتی عمیق تر می شوید ، به نگهبانان ، لوله ها ، فیلترها و غیره نیاز دارید.

  • ماژول: همه چیز مورد نیاز برای ویژگی را وصل کنید. شما در اینجا هیچ کاری برای انجام دادن ندارید ، مگر اینکه کلاسهای تزریقی مورد استفاده قرار بگیرید یا ماژول دیگری در این ماژول مورد استفاده قرار می گیرد. در اصل ، هر آنچه به ظرف DI (تزریق وابستگی) متصل است ، می توانیم از اینجا وصل شویم. اگر از بیرون چیزی ندارید ، آنطور که هست ، آن را ترک کنید. برخی از استفاده از ماژول دیگر (AUTH) را مشاهده کنید ،

استفاده از ماژول

  • کنترل کننده: کنترل کننده درخواست در سطح Nestjs. اصولاً مسیرها در اینجا تعریف می شوند. قبل از اینکه درخواست به سطح خدمات برود ، رهگیرها مانند سایر دکوراسیون ها می توانند در این سطح اعمال شوند. بیایید بگوییم که من الزامات API را دنبال می کنم ،
  1. همه کاربران را دریافت کنید: دریافت کنید -> http://localhost:3000/user
  2. یک کاربر خاص دریافت کنید: دریافت کنید -> http://localhost:3000/user/1
  3. یک کاربر جدید ایجاد کنید: پست -> http://localhost:3000/user

با دقت به کد زیر نگاه کنید. دکوراتور کنترل کننده اصلی قسمت “کاربر” مسیر را تعریف می کند. بقیه مسیر تعریف شده در دکوراتور عملکرد. @Getبا @Postبا @Param وت @Body دکوراسیون اصلی برای آسانتر کردن زندگی ما استفاده می شود.

@Get: به عنوان فعل http تعریف کنید
@Post: به عنوان فعل post http تعریف کنید
@Params: پارامترهای پرس و جو را بخوانید و به متغیر ID برگردید
@Body: محتویات بدن را استخراج کنید و به شیء کاربر اختصاص دهید

import { Body, Controller, Get, Param, Post } from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';

@Controller('user') // main route path
export class UserController {
  // inject user service into the controller
  constructor(private readonly userService: UserService) {}

  @Get("https://dev.to/") // get all users
  allUsers() {
    return this.userService.findAll();
  }

  @Get(':id') // get a specific user. eg. user/1
  findOne(@Param('id') id: string) {
    return this.userService.findById(+id);
  }

  @Post("https://dev.to/") // create a new user
  createUser(@Body() user: CreateUserDto) {
    return this.userService.createUser(user);
  }
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • سرویس: لایه منطق تجارت. این به ظرف DI تزریق می شود. این بدان معنی است که می تواند از هر جایی که می تواند با ظرف DI ارتباط برقرار کند ، استفاده شود. می توانید از اینجا نیز با پایگاه داده صحبت کنید. و سایر پردازش ها و دستکاری ها. سرانجام ، پاسخ را به کنترلر برگردانید. به سرویس کاربری ما زیر نگاه کنید ،
import { Injectable } from '@nestjs/common';
import { CreateUserDto } from '../modules/user/dto/create-user.dto';

@Injectable() // inject to the DI container
export class UserService {
  findAll() {
    // find all users from database

    // return list of users
    return [];
  }

  findById(id: number) {
    // find user from database

    // return user
    return id;
  }

  createUser(user: CreateUserDto) {
    // user creation logic

    // return created user
    return user;
  }
}

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این برای یک اصول اولیه است که می تواند با آفرینش API Nestjs REST بازی کند.

🎯 خودتان را امتحان کنید و به من اطلاع دهید که چگونه پیش می رود!

🤝 بیایید دوباره با تنظیم اتصال پایگاه داده ملاقات کنیم

به سلامتی … برنامه نویسی مبارک !!!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا