معرفی ۱۰ فریمورک برتر node.js در سال ۲۰۱۹

تو این نوشته می‌خوام ۱۰ تا از فریمورک های برتر node.js رو معرفی کنم. با گسترش جاواسکرپیت و متولد شدن node.js ، شاهد ظهور فریمورک های جاواسکریپتی سمت بک اند هستیم. از اونجایی که این زبان ساده است و خیلی ها مشغول توسعه اون هستند، تو مدت کوتاه فریمورک ها و لایبرری های زیادی براش ساخته شده.این پست نوشته ، ترجمه آزادی از این مقاله است.معرفی ۱۰ فریمورک برتر node.js در سال ۲۰۱۹برای انتخاب از بین فریمورک های نود، فاکتور های زیادی وجود داره. اما ۲ نکته کلی وجود داره:۱- توانایی های فریمورک و مقیاس پذیری (scalability)۲- راحتی توسعه دهنده در زمان توسعههمه فریمورک های نود بر روی ماژول http ساخته شده اند. بعضی از فریمورک های نود تاثیر چشمگیری روی کارکرد سرور میزارن (باعث افزایش فشار به سرور و یا کاهش فشار میشن) فریمورک هایی مثل Express.js و Fastify.js زمانی بهترین انتخاب هستند که سرویس در حال توسعه شما کوچیک باشه و در آینده نیاز به مقیاس پذیری (scalability) بزرگی باشه اما اگر روی پروژه ای با ابعاد متوسط کار می‌کنید بهتره که دنبال فریمورک هایی باشید که به شما کمک کنند کدهایی با ساختارر بهتر و تمیز تر بنویسید.بریم سراغ معرفی این ۱۰ فریمورک۱۰ - فریمورک Adonisیک فریمورک بر بستر MVC است که قابلیت ساختن Rest API توسط JWT و دسترسی به دیتابیس رو داره.از مزیت های آدونیس از رابط CLI برای سرعت بخشیدن استفاده می‌کنه.$ npm i -g @adonisjs/cli $ adonis new adonis-tasks $ adonis serve --devساختار MVC باعث میشه که زمان پیکربندی وب سرور و ... کاهش پیدا کنه.همچنین سایر نوشته های من در ویرگول: https://virgool.io/@novonimo/%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%D8%AA%D9%84%D8%AE-%D9%85%D9%86-%D8%A7%D8%B2-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-rkjs2uasy7ao https://virgool.io/@novonimo/%DA%AF%DB%8C%D8%AA-%DA%AF%DB%8C%D8%AA%D9%87%D8%A7%D8%A8-%D9%88-%DA%AF%DB%8C%D8%AA-%D9%84%D8%A8-umq6qkstrfwi ۹- فریمورک Feathersیک فریمورک سبک برای نود هست که برای اپلیکشن های realtime بسیار مناسب هست. در ادامه مثالی از یک تکه کد با Feathers.js آورده شده که به صورت realtime و WebSockets نوشته شده:const feathers = require('@feathersjs/feathers'); const express = require('@feathersjs/express'); const socketio = require('@feathersjs/socketio'); const memory = require('feathers-memory'); // Creates an Express compatible Feathers application const app = express(feathers()); // Parse HTTP JSON bodies app.use(express.json()); // Parse URL-encoded params app.use(express.urlencoded({ extended: true })); // Add REST API support app.configure(express.rest()); // Configure Socket.io real-time APIs app.configure(socketio()); // Register a messages service with pagination app.use('/messages', memory({ paginate: { default: 10, max: 25 } })); // Register a nicer error handler than the default Express one app.use(express.errorHandler()); // Add any new real-time connection to the `everybody` channel app.on('connection', connection => app.channel('everybody').join(connection)); // Publish all events to the `everybody` channel app.publish(data => app.channel('everybody')); // Start the server app.listen(3030).on('listening', () => console.log('Feathers server listening on localhost:3030') );۸- فریمورک Sailsیکی از قدیمی ترین های این عرصه هست که آزمایش خودش رو تو این سال ها پس داده. نصب و راه اندازی این فریمورک در ۴ مرحله ساده و با استفاده از ابزار CLI به راحتی امکان پذیر هست.$ npm install sails -g $ sails new test-project $ cd test-project $ sails lift۷- فریمورک Loopbackاین فریمورک توسط شرکت مطرح IBM توسعه داده شده و توسط کمپانی های مطرحی مثل GoDaddy و Symantec و همچنین خود IBM استفاده می‌شه. نسخه های منتشر شده این فریمورک به صورت ۱۸ ماهه پشتیبانی می‌شه (Long-Term Support)این فریمورک هم از CLI استفاده می‌کنه :$ npm i -g @loopback/cliحالا برای ساختن یک پروژه :$ lb4 appمسیر API و سایر کنترلر ها این شکلی هستند:import {get} from '@loopback/rest'; export class HelloController { @get('/hello') hello(): string { return 'Hello world!'; } }۶- فریمورک Fastifyاین فریمورک طراحی شد تا با ۶۵٪ افزایش راندمان، جای Express.js رو بگیره.// Require the framework and instantiate it const fastify = require('fastify')({ logger: true }) // Declare a route fastify.get('/', (request, reply) => { reply.send({ hello: 'world' }) }) // Run the server! fastify.listen(3000, (err, address) => { if (err) throw err fastify.log.info(`server listening on ${address}`) })سادگی و راحتی استفاده از Fastify و همچنین شباهت خیلی زیاد به ٍExpress.js باعث می‌شه زمانی که مشکل کارایی روی سرور داریم ، گزینه ای بهتر از Fastify نداشته باشیم.۵- فریمورک Restifyاین فریمورک با هدف دستیابی به فریمورک آینده Node.js در زمینه وب پا به عرصه گذاشت. NPM که معرف همه دولوپرهای جاواسکریپتی هست از Restify استفاده می‌کنه. همچنین کمپانی های مطرحی مثل Netflix , Pinterest و Napster از این فریمورک استفاده میکنن.استفاده از این فریمورک به سادگی آب خوردن هست:const restify = require('restify'); function respond(req, res, next) { res.send('hello ' + req.params.name); next(); } const server = restify.createServer(); server.get('/hello/:name', respond); server.head('/hello/:name', respond); server.listen(8080, function() { console.log('%s listening at %s', server.name, server.url); });۴- فریمورک Nestمعماری این فریمورک مثل Angular.js هست پس برای توسعه دهنده های فرانت اند آشنا به نظر می‌رسه و توسعه اش کار سختی نیست.import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); app.setViewEngine('hbs'); await app.listen(3000); } bootstrap();۳- فریمورک Hapiهپی یکی از ۳ فریمورک بزرگ نود هست. هپی با داشتن اکوسیستمی از کتابخونه ها و پلاگین های مختلف یکی از بهترین فریمورک های برای سفارشی سازی است.مثالی ساده از یک وب سرور هپی :const Hapi = require('@hapi/hapi'); const init = async () => { const server = Hapi.server({ port: 3000, host: 'localhost' }); await server.start(); console.log('Server running on %s', server.info.uri); }; init();۲- فریمورک Koa این فریمورک توسط تیم پشتیبان Express با هدف سادگی ، قدرت و کم حجمی برای وب طراحی شده.کوآ با استفاده از توابع جنراتور و دسترسی به کالبک ها، کنترل خطاها رو راحت تر می‌کنه. کوآ از هیچ MiddleWare استفاده نمیکنه و این لذت کد زدن سمت سرور رو بیشتر می‌کنه.const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000);۱- فریمورک Expressقطعا پادشاه فریمورک های نود همین فریمورک Express هست. پیش بینی ها خبر از رسیدن به رکورد ۲ میلیون دانلود در روز (تا انتهای سال ۲۰۱۹) رو میدن.برای نصب اکسپرس:$ npm install expressراه اندازی یک API ساده:const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => res.send('Hello World!')) app.listen(port, () => console.log(`Example app listening on port ${port}!`)) سایر مقاله های من در ویرگول: https://virgool.io/@novonimo/%DA%A9%D9%84%D9%88%DA%98%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7%D8%B3%DA%A9%D8%B1%D9%BE%DB%8C%D8%AA-%D8%AF%D8%B1-%DB%B1-%D8%AF%D9%82%DB%8C%D9%82%D9%87-um6jmr9unnyk https://virgool.io/JavaScript8/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AD%D9%84%D9%82%D9%87-%D8%B1%D9%88%DB%8C-%D9%84%DB%8C%D8%B3%D8%AA-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-vhrmccawyf89 https://virgool.io/JavaScript8/%D9%88%DB%8C%DA%98%DA%AF%DB%8C-%D9%87%D8%A7%DB%8C-%D8%AC%D8%AF%DB%8C%D8%AF-%D8%A7%DA%A9%D9%85%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%DB%B2%DB%B0%DB%B1%DB%B9-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-gs7mlxwoxu57 https://virgool.io/JavaScript8/%D8%A2%D8%A8%D8%AC%DA%A9%D8%AA-%D8%A8%D8%AF%D9%88%D9%86-%D8%A7%D8%AB%D8%B1-%D8%AC%D8%A7%D9%86%D8%A8%DB%8C-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-wswtjtwpguuq Follow me on social mediaTelegram Facebook Twitter Linkedin Virgool