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

السؤال

نشر

عم سوي مقارنة بين Express & Nest.

صار يجيني علامات استفهام. ليش Nest معقد هيك.

import { Body, Controller, Get, Post, Req, Res } from '@nestjs/common';
import { AppService } from './app.service';
import type { Request , Response } from 'express';
export interface IUser {
  name: string;
  age: number;
  freamwork: string
}

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  getHello(): string  {
    return this.appService.getHello();
  }

  @Post('/nest') 
  postHello(@Body('name') name:IUser, @Req() req:Request , @Res() res:Response)  {
    return this.appService.getHelloWorld(name);
  }
}


import express from 'express';
const app = express();

app.use(express.json());

app.get('/', (req, res) => res.send('Hello'));
app.post('/nest', (req, res) => {
  const name = req.body.name;
  res.send(`Hello ${name}`);
});

app.listen(3000);

 

Recommended Posts

  • 0
نشر

بالفعل يبدو إطار العمل Nest أكثر تعقيداً من Express ولكن ذلك ناتج عن اختلاف فلسفة التصميم بين  Express و Nest حيث يعبر Express  عن البساطة (Minimalism). فهو يوفر لك طبقة أساسية جداً للتعامل مع طلبات HTTP وإدارة المسارات (Routing) والبرمجيات الوسيطة (Middleware) و لا يفرض عليك أي هيكلية. 

بينما Nest هو إطار عمل متكامل يفرض عليك هيكلية موحدة مثل Angular .ولذلك هدفه بناء تطبيقات قابلة للصيانة والتوسع (Scalable & Maintainable)".

 

  • 0
نشر

Express.js مكتبة بسيطة لإنشاء خادم، توفر لك الأدوات الأساسية مثل التعامل مع الطلبات والمسارات، وتترك لك حرية تنظيم مشروعك كما تشاء، حيث لا توجد قواعد صارمة لكيفية تقسيم الكود وتستطيع وضع كل شيء في ملف واحد، أو تقسيمه بنفسك، وذلك مناسب في المشاريع الصغيرة.

بينما في المشاريع المتوسطة والكبيرة تظهر فائدة إطار كامل مثل Nest.js، حيث يوفر هيكل كامل وجاهز لتنظيم المشروع من Modules و Controllers و Services وDecorators، وتطبيق مفاهيم متقدمة مثل Dependency Injection وSOLID، أيضًا مبني بالكامل على TypeScript، ومبني فوق Express، لكن يضيف طبقة قوية من التنظيم مستوحاة من أطر عمل مثل Angular.

وبه نظام الـ Modules الذي يسمح لك بتقسيم التطبيق إلى وحدات مستقلة، وذلك يُسهل العمل على أجزاء مختلفة من التطبيق في فرق كبيرة ويجعل المشروع قابل للتوسع فيما بعد.

وما سبق يُسهل عملية Unit Tests لكل جزء من التطبيق بمعزل عن الآخر.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...