بهترین فریم ورک های node.js برای سال ۲۰۲۰

ترجمه و تالیف : محمدرضا مصلی
تاریخ انتشار : 06 آبان 99
خواندن در 4 دقیقه
دسته بندی ها : نود جی اس

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

هدف این مقاله مقایسه برخی از محبوب‌ترین فریم ورک‌های node.js است تا در نهایت بتوانید تصمیم بگیرید کدام یک برای پروژه شما مناسب است.

فریم ورک چیست؟

به طور کلی ، یک فریم ورک یک سیستم پشتیبانی برای برنامه شما است. node.js مجموعه‌ای از ابزارها را برای ارتباط با مواردی که برنامه شما نیاز دارد مانند شبکه و سیستم فایل فراهم می‌کند. یک فریم ورک این قابلیت‌ها را گسترش می‌دهد و برخی از جنبه‌های پیچیده‌تر توسعه را خلاصه می‌کند. به عنوان مثال، ممکن است یک مدیر در کد شما یک شی درخواست را از شبکه دریافت کند. یک فریم ورک می‌تواند این شی درخواست را قبل از اینکه به دستیار شما برسد، رهگیری کرده و برخی روش‌ها و قابلیت‌های اضافی را برای سهولت کار با آن اضافه کند.

چندین فریم ورک از node.js وجود دارد و هر یک تجربه برنامه نویسی متفاوتی را ارائه می‌دهند.

فریم ورک های MVC

معماری (MVC (Model View Controller یک الگوی طراحی مفید است که منطق برنامه را به سه قسمت تقسیم می‌کند - مدل‌هایی برای تعریف شکل داده‌ها، ویو‌ها برای سازماندهی رابط کاربری و کنترلرها برای برقراری ارتباط بین این دو. فریم ورک‌های نودی که از معماری MVC پشتیبانی می‌کنند در صورتی مفید هستند که نمی‌خواهید زمان زیادی را با نگرانی در مورد نحوه سازماندهی کد خود صرف کنید.

Eexpress

ما همچنان می‌توانیم اکسپرس را اول بدانیم، زیرا بدون آن هیچ لیستی از فریم ورک‌های node.js کامل نخواهد بود. اکسپرس همچنان قهرمان سلطنتی فریم ورک‌های محبوب است، زیرا ستارههای ۴۷.۵ هزار گیتهاب، دیدبانهای آن ۱.۸ هزار و فورکهای ۷.۷ هزار آن را گواهی می‌دهند. این به تنهایی آن را به یک انتخاب عالی تبدیل می‌کند. این آزمایش شده است و جامعه بزرگی وجود دارد که با آن همکاری می‌کند و می‌تواند شما را پشتیبانی کند و به سوالات شما پاسخ دهد.

اکسپرس خودش را به عنوان "فریم ورک مینیمالیست سریع، بدون عقیده" تبلیغ می‌کند. تمرکز بر عملکرد و تأمین تنها آنچه شما نیاز دارید است. این فریم ورک به جای اینکه امکان پردازش گسترده درخواست‌ها را فراهم کند، عملکرد کمی از خود را ارائه می‌دهد.

شروع کنید

یک فایل server.js یا app.js در روت پروژه خود ایجاد کنید و کد زیر را اضافه کنید.

const express = require('express')
const app = express()
app.get('/', function (req, res) {
  res.send('Hello World')
})
app.listen(3000)

سرور را با استفاده دستور زیر اجرا کنید.

node ./server.js

و برای دیدن پاسخ به localhost: 3000 در مرورگر خود مراجعه کنید.

Sails

sails بر پایداری و سهولت استفاده تأکید می‌کند و خارج از جعبه چیزهای بیشتری نسبت به اکسپرس فراهم می‌کنند. در جهت full-stack متمایل می‌شود، پشتیبانی از احراز هویت، ORM خاص خود برای رابط پایگاه داده، WebSockets را فراهم می‌کند. Sails نسبت به اکسپرس امکانات بیشتری دارد - به این معنی که شما باید از (ORM (Waterline و موتور (templating (EJS استفاده کنید، اگرچه افزونه‌ای به نام Consolidate پشتیبانی از موتورهای دیگر را که با اکسپرس سازگار هستند فراهم می‌کند. Sails همچنین دارای یک مولد API چشمگیر به نام Blueprints است، که به شما امکان می‌دهد نقاط پایانی API را با حداقل کدگذاری دستی ایجاد کنید.

اگر شما یک فایل مدل User.js را در پروژه خود ایجاد کنید، سپس با استفاده از blueprints می‌توانید بلافاصله برای ایجاد کاربر از /user / create؟ name = joe بازدید کرده و برای دیدن آرایه‌ای از کاربران برنامه خود از / user بازدید کنید. بدون نوشتن یک خط کد!

Sails برای مدت طولانی وجود داشته است و با توجه به ستارهها ، دیدبانها و فورک گیتهاب از محبوب‌ترین فریم ورک‌ها است. بسیاری از شرکت‌های بزرگ به Sails اعتماد می‌کنند، به این معنی که آنقدر قوی است که می‌تواند از برنامه‌های سطح سازمانی پشتیبانی کند.

شروع کنید

Sails یک رابط خط فرمان قدرتمند فراهم می‌کند تا با آن یک برنامه جدید را خیلی سریع ایجاد کنید.

npm install -g sails
sails new <project_name>

از شما خواسته می‌شود که الگوی برنامه وب را با احراز هویت و ورود به سیستم داخلی یا یک برنامه خالی انتخاب کنید. هنگامی که Sails تنظیمات اولیه را به پایان رساند، در پوشه پروژه خود بروید و آن را اجرا کنید.

sails lift

اکنون می توانید برای دیدن صفحه اصلی تولید شده به localhost: 1337 بروید.

فریم ورک های full-stack

فریم ورک‌های full-stack ساختار کاملی را برای شما فراهم می‌کنند - از کلاینت گرفته تا سرور، پایگاه داده. یک فریم ورک full-stack ممکن است دارای بسیاری از ویژگی‌ها باشد، از جمله موتورهای templating، کتابخانه‌های WebSocket و ORM. بسته به اندازه تیم و برنامه شما، این ویژگی‌ها می‌توانند بسیار مفید باشند یا بیش از نیاز شما باشند.

Meteor

Meteor دومین فریم ورک node.js پرستاره در گیتهاب است. جامعه  آن پر جنب و جوش است و مستندات گسترده ای دارند. مستندات شامل بهترین روش‌ها، راهنماهای سبک پیشنهادی و بسیاری از آموزش‌ها مقالات فنی است. Meteor همراه با npm و مدیر بسته خود به نام Atmosphere و همچنین پشتیبانی داخلی از مونگو و ادغام آسان با React ، Angular یا Blaze. امکانات بیشتری نسبت به اکسپرس یا Sails دارد.

Meteor از "data on the wire" برخلاف ارائه در سمت سرور استفاده می‌کند - بنابراین سرور داده می‌فرستد، نه HTML، و کلاینت آن را ارائه می‌دهد. ابزار Meteor برای پشتیبانی از تلفن همراه از طریق Cordova فراهم می‌شود و از بارگیری مجدد نیز پشتیبانی می‌کند.

شروع کنید

Meteor’s build tool چیزی است که برنامه شما را ایجاد، کامپایل و اجرا می‌کند. آن را از طریق curl بارگیری کنید.

curl https://install.meteor.com/
meteor create <project_name>

با این کار ساختار پرونده برای همه مواردی که در یک برنامه اصلی Javascript نیاز دارید، سازمان یافته در دایرکتوری‌های / client و / server ایجاد می‌شود. وارد پروژه خود شوید و آن را اجرا کنید.

meteor run

اکنون برنامه باید در localhost: 3000 اجرا شود.

فریم ورک‌های REST API

اگر سمت کلاینت برنامه شما پوشانده شده باشد، ممکن است فقط به یک فریم ورک برای قسمت سرور نیاز داشته باشید. در این حالت، فقط برای رسیدگی به درخواست‌های CRUD به سرور خود می‌توانید از یک فریم ورک REST API ساده استفاده کنید. تقریباً می‌توانید این کار را با اکسپرس انجام دهید، اما فریم ورک‌هایی نیز وجود دارد که به طور خاص برای رسیدگی به این پرونده خاص طراحی شده‌اند.

Loopback

طبق گفته Loopback دومین و محبوب‌ترین فریم ورک REST API است. این نرم افزار توسط IBM توسعه یافته است و "یک فریم ورک node.js بسیار متنوع منبع‌باز مبتنی بر اکسپرس است که به شما امکان می‌دهد به سرعت APIها و ریز خدمات را ایجاد کنید." همراه با یک ابزار commandline برای تولید پروژه‌ها و ایجاد کنترلرها و مدل‌ها با سهولت و پشتیبانی اضافی برای تأیید اعتبار و مجوز آسان را فراهم می‌کند. هیچ پشتیبانی از ویو‌ها یا قالب‌ها یا ORM اختصاصی را ارائه نمی‌دهد، زیرا فقط به عنوان API استفاده می‌شود.

Loopback به شما امکان می‌دهد در کمترین زمان با کدگذاری، یک API پویا ایجاد کنید. چرخه توسعه بسیار سریع است و ساختار فایل تمیز و مفید است. Setup شامل گزینه‌هایی برای پیکربندی eslint ، prettier mochaو docker است که درست خارج از جعبه است.

شروع کنید

npm install -g @loopback/cli

lb4 <project_name>

از شما خواسته خواهد شد در مورد چگونگی تنظیم برنامه خود چندین سوال را پاسخ دهید تا ساختار پروژه ایجاد شود. وارد روت پروژه کنید و اجرا کنید.

npm start

برای ایجاد یک مسیر جدید

lb4 controller

 اجرا کنید.

و پاسخ دهید پس از ایجاد فولدر کنترلرها، می‌توانید تابع get را ازLoopback وارد کرده و از آن برای راه‌اندازی کنترلر استفاده کنید.

import {get} from '@loopback/rest';

export class HelloController {
  @get('/hello')
  hello(): string {
    return 'Hello world!';
  }
}

نتیجه‌گیری

انتخاب بهترین فریم ورک node.js کار دشواری است، زیرا فریم ورکی که انتخاب می‌کنید بر‌اساس نیازهای شما تغییر می‌کند. اگر می‌خواهید آزادی انتخاب کتابخانه‌ها و ادغام‌های شخص ثالث خود را داشته باشید، اکسپرس یا Loopback بهترین گزینه شما خواهد بود. اما اگر تیم شما می‌خواهد ظرف چند روز یک اپلیکیشن کاملاً جدید را پشت سر بگذارد، Meteor یا Sails بهتر می‌تواند نیازهای شما را برآورده کند.

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

منبع

گردآوری و تالیف محمدرضا مصلی
آفلاین
user-avatar

حدود ۶ سالی هست که دارم برنامه نویسی میکنم و به دلیل علاقه زیادی که به زبان جاوا اسکریپت داشتم، به سمت تکنولوژی nodejs و فریم ورک های آن رفتم و همچنان در این حوزه فعالیت میکنم و دوست دارم تجربه خودم را با دیگران به اشتراک بگذارم.

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید