مقالات

سری Deep Dive Deep: به سادگی یک برنامه لانه JavaScript با JavaScript


سلام خواننده!
به سری “Nest.JS Deep Dive” خوش آمدید. در این سری ، ما فضای داخلی Nest.js را مطالعه خواهیم کرد تا دریابیم که چگونه کار می کند و چگونه می توانید استفاده از آن را برای ساخت برنامه های باطن خود شروع کنید.

ما با پایه های کامل شروع خواهیم کرد و به تدریج مدل های ذهنی قوی ایجاد خواهیم کرد که به شما اعتماد به نفس در توسعه پروژه NEST.JS بعدی شما می دهد.

من این سریال را پس از انجام تحقیقات زیادی ایجاد کردم و فهمیدم که منابع کافی وجود ندارد که برای افرادی که شروع می کنند در قاب باشد. بیشتر درس ها مستقیماً بدون ساختن یک پایگاه قوی برای مبتدیان ، مستقیماً به استفاده عملی می روند. این سریال منبعی است که می خواهم هنگام مطالعه Nest.js.

می توانید کد مورد بحث در این مقاله را در اینجا پیدا کنید
بیایید شروع کنیم …

nest.js چیست

با توجه به مستندات Nest.js:

“Nest (Nestjs) چارچوبی برای ساخت برنامه های کاربردی مؤثر و مقیاس شده توسط Node.js.” است. “

بیایید این تعریف ساده را بشکنیم تا بفهمیم این به چه معنی است:

  • nest.js به عنوان یک قاب: این قاب یک ساختار اساسی است که در آن می توانید نرم افزار بسازید تا کاملاً از ابتدا شروع نکنید. از آنجا که Nest.JS یک چارچوب است ، کاربران خود را مجبور می کند تا کد خود را به روشی از پیش تعیین شده ساختار دهند ، که تعمیر و نگهداری ، آزمایش و عقل را تسهیل می کند.
    حرف

  • برنامه سرور: nest.js با node.js ساخته شده است تا برنامه هایی را ایجاد کند که روی سرور کار کنند.

بیایید کمی بیشتر در مورد ساخت یک برنامه روی سرور صحبت کنیم

اصطلاح “سرور” بسته به متن می تواند به معنای چیزهای مختلف باشد. بعضی اوقات به یک اشاره می کند “رایانه فیزیکی” این منابع را برای سایر رایانه ها (مشتریان) فراهم می کند. بار دیگر به “برنامه نرم افزار” انجام این دستگاه برای درخواست های شغلی و ارسال پاسخ.

به عنوان مثال ، هنگامی که یک صفحه پروفایل فیس بوک را باز می کنید ، مرورگر شما درخواستی را به سرورهای Facebook (ماشین آلات) ارسال می کند. در این سرورها ، “برنامه وب سرور” درخواست را پردازش می کند و با صفحه ای که می بینید پاسخ می دهد.

nest.js و express.js

یکی دیگر از چارچوبهای محبوب برای ساختن سرورهای وب در Node.js است express.jsدر واقع ، در زیر هود ، Nest.js از اکسپرس (یا فریم های مشابه) برای ساده کردن روند ایجاد برنامه های کاربردی از سرور استفاده می کند.

تفاوت اصلی این دو در این است که nest.js خودکفا استدر حالی که اکسپرس بی ضرر استS این بدان معنی است که سازندگان Nest.js “نظرات” قوی و مجموعه ای از بهترین شیوه ها در مورد چگونگی سازماندهی و نگارش کد پس زمینه دارند. با این حال ، با اکسپرس ، شما می توانید ساختار و رویکرد خود را تعیین کنید.

با کلمات کافی است ، بیایید شروع به نوشتن کد کنیم …

ایجاد ساده ترین برنامه برای nest.js

معمولاً برای ایجاد یک برنامه برای nest.js ، از Nest CLI استفاده می کنیم. CLI تنظیم شده و قسمت بزرگتر دیگ بخار را برای شما پیکربندی می کند و در عرض چند ثانیه یک برنامه کاری به شما می دهد.

نکته منفی این است که به عنوان جادو کار می کند. ما نمی بینیم که زیر کاپوت چه می گذرد. در این مقاله ، پرونده های اصلی خودمان را ایجاد خواهیم کرد. برای سادگی ما با کمک استفاده شروع خواهیم کرد nest.js در محیط جاوا اسکریپتحرف

توجه: nest.js از TypeScript استفاده و توصیه می کند. ما فقط از JavaScript برای یادگیری در اینجا استفاده می کنیم. بعداً در این سری ، ما در مورد استفاده از TypeScript و CLI برای ساده سازی توسعه پس از درک پایه ها بحث خواهیم کرد.

یک برنامه جدید Node.js را تنظیم کنید

npm init -y
حالت کامل صفحه را وارد کنید

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

نصب وابستگی های مورد نیاز:

npm i --save @nestjs/core @nestjs/common @nestjs/platform-express rxjs reflect-metadata
حالت کامل صفحه را وارد کنید

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

درک بسته هایی که ما فقط نصب کرده ایم

  • @nestjs/core: این بسته اصلی است که شامل عملکرد اساسی و محیط مورد نیاز برای اجرای یک برنامه سوکت است.

  • @nestjs/common: این شامل عناصری است که معمولاً در یک برنامه سوکت استفاده می شوند ، مانند دکوراسیون کنترل کننده و پردازش منطق HTTP (بعداً به این موضوع خواهیم پرداخت).

  • @nestjs/platform-express: از آنجا که لانه در بالای اکسپرس ساخته شده است ، این بسته اجازه می دهد تا ادغام صاف بین لانه و اکسپرس باشد.

  • rxjs: Nest از RXJ ها در داخل برای پردازش کارهای ناهمزمان استفاده می کند و به برنامه نویسی واکنشی مانند پردازش درخواست های دریافتی یا مدیریت جریان داده ها اجازه می دهد.

  • reflect-metadata: این بسته به سوکت اجازه می دهد تا ابرداده اضافی را به کلاس ها و کارکردهای مورد نیاز برای دکوراتورها وصل کند (ما دکوراسیون ها را بعداً در این سری توضیح خواهیم داد).

اولیه سازی برنامه لانه

ایجاد کردن index.js پرونده را اضافه کرده و کد زیر را اضافه کنید

import { NestFactory } from "@nestjs/core";

const bootstrapp = async () => {
  const app = await NestFactory.create(); // creating the app
  await app.listen(3000); // listening on Port 3000
};

bootstrapp();
حالت کامل صفحه را وارد کنید

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

اجرای کد فوق با index.js گره منجر به اشتباه خواهد شد زیرا Nestfactory.Create () در انتظار استدلال هایی است که ما هنوز تصویب نکرده ایم.

اگرچه کد اشتباه خواهد کرد ، اما بیایید لحظه ای بفهمیم که در اینجا چه اتفاقی می افتد:

  • وارد کردن NestFactory اعتراض @nestjs/core packageهمانطور که نام “کارخانه” پیدا می کند ، این شیء شامل روشهای لازم برای ایجاد یک برنامه لانه است.
    حرف

  • ما تابعی به نام تعریف می کنیم bootstrap که با فراخوانی یک برنامه جدید لانه سازی (یا “bootstraps”) را آغاز می کند NestFactory.create()S این روش قولی را که به شیء برنامه مجاز است ، باز می گرداند ، بنابراین ما انتظار داریم که آن را دریافت کند که نسخه واقعی برنامه را دریافت کند.
    حرف

  • از موضوع برنامه ای که ما تماس می گیریم listen روش و به آن بگویید که به بندر 3000 گوش دهید. این بدان معنی است که تمام درخواست های ارسال شده به بندر 3000 توسط برنامه لانه ما پردازش می شوند.

حالا بیایید ما را برطرف کنیم NestFactory.create() اشتباه

او NestFactory.create() این روش حداقل یک استدلال را انتظار دارد ماژول برنامه ما تا کنون ، بیش از حد نگران نباشید که یک ماژول چیست. در سطح بالایی ، ماژول فقط کلاس است که حاوی اطلاعاتی در مورد کنترل کننده های موجود ، خدمات (بعداً در مورد آنها صحبت خواهیم کرد) و یک منطق دیگر برنامه. شما می توانید از آن به عنوان “ریشه منطق برنامه ما” فکر کنید.

برای ساده کردن کارها ، ما به سادگی می توانیم یک کلاس اساسی جاوا اسکریپت را ایجاد کنیم که هیچ کاری در آن انجام نشده است NestFactory.create() گریه را متوقف کن

کد را به روز کنید index.js موارد زیر باشد

import { NestFactory } from "@nestjs/core";

class AppModule {} // Just an empty class for now

const bootstrapp = async () => {
  const app = await NestFactory.create(AppModule); // we create the app with our module
  await app.listen(3000);
};

bootstrapp();
حالت کامل صفحه را وارد کنید

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

این ، این ساده ترین برنامه سوکت است که می توانید در JavaScript ایجاد کنید :). اگر سعی می کنید باز کنید http://localhost:3000 در مرورگر یا چیزی شبیه به یک پستچی باید خطایی دریافت کنید که به نظر برسد

{
    "message": "Cannot GET /",
    "error": "Not Found",
    "statusCode": 404
}
حالت کامل صفحه را وارد کنید

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

این امر به این دلیل است که ما هیچ نقطه پایانی را پیاده سازی نکرده ایم ، اما حداقل برنامه سرور وب ما اداره و اجرا می شود و به درخواست ها پاسخ می دهد.

در مقاله بعدی ما بر روی پیشرفت فعلی خود خواهیم ساخت که در عمق ماژول Nest.js وارد شده ایم

من آن وقت خواهم دید …


Source link

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

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

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