wybór frameworka dla aplikacji NodeJS może być trudny. Jest ich tak wielu, którzy mają swoje mocne i słabe strony. Ostatecznie wybrany przez Ciebie framework będzie zależał od Twojego środowiska programistycznego i tego, co ma robić Twoja aplikacja. Niektóre frameworki są lekkie, szybkie i nie dbają o to, jak tworzysz aplikację. Inne mają więcej funkcji, ale mogą zmusić cię do korzystania z ich silników i organizowania kodu w określony sposób.
celem tego artykułu jest porównanie niektórych z najpopularniejszych RAM węzłów, abyś mógł ostatecznie zdecydować, który z nich jest odpowiedni dla Twojego projektu.
co to jest Framework?
Ogólnie rzecz biorąc, framework jest systemem wsparcia dla Twojej aplikacji. Node zapewnia zestaw narzędzi do interfejsu z rzeczami, których potrzebuje Twoja aplikacja, takimi jak Sieć i system plików. Framework rozszerza te możliwości i abstrahuje od niektórych bardziej skomplikowanych aspektów rozwoju. Na przykład moduł obsługi w kodzie może otrzymać obiekt request z sieci. Framework może przechwycić ten obiekt żądania, zanim dotrze do twojego programu obsługi, dodając kilka dodatkowych metod i możliwości, aby ułatwić pracę z nim.
istnieje kilka smaków struktury Node, a każdy z nich zapewnia inne doświadczenie programistyczne.
struktury MVC
Architektura MVC (Model View Controller) to użyteczny wzorzec projektowy, który dzieli logikę aplikacji na trzy części — modele do definiowania kształtu danych, widoki do organizowania interfejsu użytkownika i kontrolery do komunikacji między nimi. Frameworki węzłów obsługujące architekturę MVC są przydatne, jeśli nie chcesz tracić zbyt wiele czasu na martwienie się o to, jak zorganizować swój kod.
Express
równie dobrze możemy usunąć Express z drogi, ponieważ żadna lista frameworków węzłów nie byłaby kompletna bez niego. Express jest nadal panującym mistrzem popularnych frameworków, o czym świadczą 47,5 K Gwiazdy Github, 1,8 K zegarki i widelce 7,7 K. Tylko to sprawia, że jest to doskonały wybór. Jest solidny, dobrze przetestowany i istnieje duża społeczność utrzymująca go i współpracująca z nim, która może cię wspierać i odpowiadać na pytania.
Express reklamuje się jako ” szybki, niedefiniowany, minimalistyczny framework dla Node.”Skupiamy się na wydajności i dostarczaniu tylko tego, czego potrzebujesz. Framework zapewnia niewielką funkcjonalność, zamiast pozwalać na rozbudowane łańcuchy oprogramowania pośredniczącego do przetwarzania żądań.
pierwsze kroki
Utwórz serwer.js lub app.plik js w katalogu głównym projektu i dodaj następujący kod
const express = require('express')const app = express()app.get('/', function (req, res) { res.send('Hello World')})app.listen(3000)
uruchom serwer z
node ./server.js
i odwiedź localhost:3000 w przeglądarce, aby zobaczyć odpowiedź.
żagle
żagle podkreślają stabilność i łatwość użytkowania i zapewniają znacznie więcej od razu po wyjęciu z pudełka niż ekspres. Opiera się w kierunku pełnego stosu, zapewniając wsparcie dla uwierzytelniania, własnego ORM dla interfejsów baz danych, Websocketów i szablonów. Sails jest bardziej opiniotwórczy niż Express-co oznacza, że musisz użyć dostarczonego ORM (Waterline) i silnika szablonów (EJS, chociaż rozszerzenie o nazwie Consolidate zapewnia wsparcie dla innych silników szablonów, które są kompatybilne z Express.) Sails posiada również imponujący generator API o nazwie Blueprints, który pozwala na generowanie punktów końcowych API przy minimalnym kodowaniu ręcznym. Z Dokumentacji żagli:
…jeśli utworzysz użytkownika.plik modelu js w Twoim projekcie, po włączeniu blueprints będziesz mógł od razu odwiedzić /user / create?name = joe aby utworzyć użytkownika i odwiedź / user aby zobaczyć tablicę użytkowników twojej aplikacji. Wszystko bez pisania jednej linijki kodu!
Sails istnieje już od dawna i jest jednym z najpopularniejszych szkieletów według gwiazd Github, widoków i widelców. Wiele dużych firm polega na żaglach, co oznacza, że jest wystarczająco solidny, aby wspierać aplikacje na poziomie przedsiębiorstwa.
pierwsze kroki
Sails zapewnia potężny interfejs wiersza poleceń, aby szybko rozpocząć pracę z nową aplikacją
npm install -g sailssails new <project_name>
zostaniesz poproszony o wybranie szablonu aplikacji internetowej z wbudowanym uwierzytelnieniem i logowaniem lub pustej aplikacji. Po zakończeniu konfiguracji podstawy, CD do folderu projektu i uruchom
sails lift
możesz teraz przejść do localhost: 1337, aby zobaczyć wygenerowaną stronę główną.
frameworki z pełnym stosem
frameworki z pełnym stosem zapewniają strukturę i funkcjonalność całej aplikacji-od klienta przez serwer po bazę danych. Framework z pełnym stosem może zawierać wiele funkcji, w tym silniki szablonów, Biblioteki WebSocket i ORMs. W zależności od wielkości zespołu i aplikacji, funkcje te mogą być bardzo przydatne lub mogą być więcej niż potrzebujesz.
Meteor
Meteor jest drugim pod względem gwiazd, oglądanym i rozwidlonym frameworkiem węzła na Githubie. Społeczność jest żywa, a dokumentacja jest obszerna. Dokumentacja zawiera najlepsze praktyki, zalecane przewodniki po stylach oraz wiele samouczków i artykułów technicznych. Meteor jest dostarczany w pakiecie z npm i własnym menedżerem pakietów o nazwie Atmosphere, a także wbudowaną obsługą magazynu danych Mongo i łatwą integracją z React, Angular lub Blaze. Jest bardziej opiniotwórczy niż ekspresowy czy żaglowy.
Meteor używa „data on the wire” w przeciwieństwie do renderowania po stronie serwera-więc serwer wysyła dane, a nie HTML, a klient je renderuje. Meteor build narzędzie zapewnia wsparcie po wyjęciu z pudełka dla mobilnych przez Cordova i obsługuje hot reloading.
pierwsze kroki
narzędzie budowania Meteor jest tym, co tworzy, kompiluje i uruchamia Twoją aplikację. Pobierz go przez curl.
curl https://install.meteor.com/meteor create <project_name>
utworzy to strukturę plików dla wszystkiego, czego potrzebujesz w podstawowej aplikacji Javascript, zorganizowanej w katalogach /client I /server. cd do katalogu głównego projektu i uruchom
meteor run
aplikacja powinna być teraz uruchomiona na localhost:3000
frameworki REST API
jeśli masz dostęp do aplikacji po stronie klienta, możesz potrzebować frameworka dla części serwerowej stosu. W takim przypadku możesz użyć prostego frameworka REST API, aby obsłużyć żądania CRUD do twojego serwera. Możesz to zrobić z Express, ale istnieją również frameworki specjalnie dostosowane do obsługi tego konkretnego przypadku.
Loopback
Loopback jest drugim najpopularniejszym frameworkiem REST API według Githuba. Opracowany przez IBM, to ” wysoce rozszerzalny, open-source node framework oparty na Express, który pozwala szybko tworzyć interfejsy API i mikroserwisy.”Jest wyposażony w narzędzie wiersza poleceń do generowania projektów i tworzenia kontrolerów i modeli z łatwością i zapewnia dodatkową obsługę łatwego uwierzytelniania i autoryzacji. Nie zapewnia wsparcia dla widoków, szablonów ani dedykowanego ORM, ponieważ ma być używany tylko jako API.
Loopback umożliwia tworzenie dynamicznego API w ciągu kilku minut przy minimalnym kodowaniu. Cykl programowania jest bardzo szybki, a struktura plików jest czysta i użyteczna. Konfiguracja zawiera opcje konfiguracji eslint, prettier, mocha i docker zaraz po wyjęciu z pudełka.
pierwsze kroki
npm install -g @loopback/clilb4 <project_name>
zostaniesz poproszony o odpowiedź na kilka pytań dotyczących konfiguracji aplikacji, a struktura plików zostanie rusztowana. cd do katalogu głównego projektu i uruchom
npm start
aby utworzyć nową trasę, Uruchom
lb4 controller
i odpowiedz na monity. Po utworzeniu pliku kontrolera można zaimportować funkcję get Loopback i użyć jej do skonfigurowania kontrolera
import {get} from '@loopback/rest';export class HelloController { @get('/hello') hello(): string { return 'Hello world!'; }}
podsumowanie: najlepszy węzeł.frameworki js
Framework | wydajność | społeczność | łatwość użytkowania | najlepsze dla |
---|---|---|---|---|
ekspresowa | szybka. Dodaje niewiele, więc nic, aby uzyskać int he sposób węzła surowej prędkości. | Massive. Wiele pytań i odpowiedzi. | duże i małe projekty. Również świetny sposób, aby dowiedzieć się, jak pracować z Node. | |
Żagle | Średnie. Nacisk kładziony jest na poprawę wydajności dewelopera nad wydajnością. | duży. Dobrze ugruntowany projekt, który istnieje od dłuższego czasu. | spokojnie. Plany bardzo ułatwiają uruchomienie API przy minimalnym kodowaniu. | projekty średniej wielkości, które muszą szybko zacząć działać. |
Meteor | Nacisk kładziony jest na szybkie tworzenie/prototypowanie projektu. | mniejszy, ale żywy i rosnący. | spokojnie. Plany bardzo ułatwiają uruchomienie API przy minimalnym kodowaniu. | szybkie tworzenie małych projektów. Brudzisz sobie ręce nowym narzędziem. |
Loopback | Średni. | mały, ale ci, którzy go kochają, naprawdę go kochają. | proste, ale nie daje tyle z góry. | Tworzenie interfejsu API w skali przedsiębiorstwa dla osobnego interfejsu front-end. |
wnioski
trudno jest wybrać definitywny „najlepszy” framework węzła, ponieważ wybrany framework zmieni się w zależności od twoich potrzeb. Jeśli chcesz mieć swobodę wyboru własnych bibliotek i integracji innych firm, Express lub Loopback może być najlepszym rozwiązaniem. Ale jeśli twój zespół chce w ciągu kilku dni stworzyć zupełnie nową aplikację, Meteor lub Sails może lepiej spełnić twoje potrzeby.
istnieje wiele innych struktur poza tymi omówionymi w tym artykule, a najlepszym sposobem, aby dowiedzieć się, co będzie działać dla Twojej aplikacji lub zespołu, jest przeczytanie dokumentów i wypróbowanie kilku.
- jak używać API
- z JavaScript
- jak utworzyć API
- z węzłem.js i Express.js
- Jak zbudować aplikację pogodową z węzłem.js
- jak skonfigurować serwer GraphQL z węzłem i ekspresem