Nima Mohamadian
Nima Mohamadian
خواندن ۵ دقیقه·۵ سال پیش

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

تو این نوشته می‌خوام ۱۰ تا از فریمورک های برتر 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 media
Telegram
Facebook
Twitter
Linkedin
Virgool
برنامه نویسیjavascriptbackendnode
توسعه دهنده جاواسکریپت
شاید از این پست‌ها خوشتان بیاید