att välja ett ramverk för din NodeJS-applikation kan vara tufft. Det finns så många av dem, med sina egna styrkor och svagheter. I slutet av dagen beror ramverket du väljer på din programmeringsmiljö och vad du vill att din app ska göra. Vissa ramar är lätta, snabba och bryr sig inte om hur du bygger din app. Andra har fler funktioner men kan tvinga dig att använda sina motorer och organisera din kod på ett visst sätt.
målet med denna artikel är att jämföra några av de mest populära Nodramarna så att du i slutändan kan bestämma vilken som är rätt för ditt projekt.
Vad är ett ramverk?
generellt sett är ett ramverk ett stödsystem för din ansökan. Node tillhandahåller en uppsättning verktyg för att samverka med saker som din app behöver, som nätverket och filsystemet. Ett ramverk utökar dessa möjligheter och abstraherar bort några av de mer komplicerade aspekterna av utvecklingen. Till exempel kan en hanterare i din kod få ett förfrågningsobjekt från nätverket. Ett ramverk kan avlyssna detta förfrågningsobjekt innan det når din hanterare och lägga till några ytterligare metoder och funktioner för att göra det lättare att arbeta med.
det finns flera smaker av Node framework, och var och en ger en annan programmeringsupplevelse.
MVC Frameworks
MVC (Model View Controller) arkitektur är ett användbart designmönster som delar applikationslogik i tre delar — modeller för att definiera formen på data, vyer för att organisera användargränssnittet och styrenheter för att kommunicera mellan de två. Nodramar som stöder MVC-arkitektur är användbara om du inte vill spendera för mycket tid på att oroa dig för hur du organiserar din kod.
Express
vi kan lika gärna få Express ur vägen först, eftersom ingen lista över Nodramar skulle vara komplett utan den. Express är fortfarande den regerande mästaren av populära ramar, som dess 47.5 K Github stjärnor, 1.8 K klockor och 7.7 K gafflar kommer att intyga. Detta ensam gör det till ett utmärkt val. Det är robust, väl testad, och det finns en stor gemenskap upprätthålla och arbeta med det som kan stödja dig och svara på frågor.
Express svartabörshajar sig som en ”snabb, un-opinionated, minimalistisk ram för nod.”Fokus ligger på prestanda och ger bara vad du behöver. Ramverket ger liten egen funktionalitet, istället för att möjliggöra omfattande middleware-kedja för att bearbeta förfrågningar.
komma igång
skapa en server.js eller app.js fil i roten av projektet och lägga till följande kod
const express = require('express')const app = express()app.get('/', function (req, res) { res.send('Hello World')})app.listen(3000)
kör servern med
node ./server.js
och besök localhost:3000 i din webbläsare för att se svaret.
segel
segel betonar stabilitet och användarvänlighet och ger mycket mer ur lådan än Express. Det lutar i full stack riktning, ger stöd för autentisering, sin egen ORM för Databas gränssnitt, WebSockets och Mall. Sails är mer påstridig än Express-vilket innebär att du måste använda den medföljande ORM (Waterline) och mall motor (EJS, även om en förlängning kallas konsolidera ger stöd för andra Mall motorer som är kompatibla med Express.) Sails har också en imponerande API-generator som heter Blueprints, som låter dig generera API-slutpunkter med minimal manuell kodning. Från Segeldokumentationen:
…om du skapar en användare.JS modellfil i ditt projekt, då med ritningar aktiverade kommer du att kunna omedelbart besöka/användare / skapa?namn = joe för att skapa en användare och besök /användare för att se en rad av appens användare. Allt utan att skriva en enda kodrad!
Sails har funnits länge och är bland de mest populära ramarna enligt dess Github-stjärnor, vyer och gafflar. Många stora företag är beroende av segel, vilket betyder att det är tillräckligt robust för att stödja applikationer på företagsnivå.
komma igång
Sails ger ett kraftfullt kommandoradsgränssnitt för att komma igång med en ny app mycket snabbt
npm install -g sailssails new <project_name>
du blir ombedd att välja antingen en webbappmall med inbyggd autentisering och inloggning eller en tom app. När Sails slutar ställa in grunderna, cd i din projektmapp och kör
sails lift
du kan nu navigera till localhost:1337 för att se den genererade hemsidan.
Full-Stack Frameworks
full – stack frameworks ger struktur och funktionalitet för hela programmet-från klienten till servern till databasen. Ett ramverk med full stack kan komma med många funktioner, inklusive mallmotorer, WebSocket-bibliotek och orm. Beroende på storleken på ditt team och applikation kan dessa funktioner vara mycket användbara eller de kan vara mer än du behöver.
Meteor
Meteor är den näst mest stjärnmärkta, visade och gafflade Nodramen på Github. Samhället är levande och dokumentationen är omfattande. Dokumentationen innehåller bästa praxis, rekommenderade stilguider och många handledning och tekniska artiklar. Meteor levereras med npm, och en egen pakethanterare som heter Atmosphere, samt inbyggt stöd för en Mongo datastore och enkel integration med React, Angular eller Blaze. Det är mer uppfattat än uttryck eller segel.
Meteor använder ”data på tråden” i motsats till serversidan rendering-så servern skickar data, inte HTML, och klienten gör det. Meteor build tool ger ut ur lådan stöd för mobil via Cordova och stöder varm omlastning.
komma igång
meteors byggverktyg är det som skapar, kompilerar och kör din app. Ladda ner den via curl.
curl https://install.meteor.com/meteor create <project_name>
detta skapar filstrukturen för allt du behöver i en grundläggande Javascript-app, organiserad i /klient-och /serverkataloger. cd i ditt projekt rot och kör
meteor run
appen ska nu köras på localhost:3000
REST API-ramverk
om du har klientsidan av din applikation täckt kanske du bara behöver ett ramverk för serverdelen av din stack. I det här fallet kan du gå med en enkel REST API-ram bara för att hantera CRUD-förfrågningar till din server. Du kan ganska mycket göra detta med Express, men det finns också ramar som är specifikt inriktade på att hantera det här fallet.
Loopback
Loopback är det näst mest populära REST API-ramverket, enligt Github. Utvecklat av IBM är det en ”mycket utbyggbar, öppen Källkodsnodram baserad på Express som gör att du snabbt kan skapa API: er och mikrotjänster.”Det levereras med ett kommandoradsverktyg för att generera projekt och skapa styrenheter och modeller med lätthet och ger tilläggsstöd för enkel autentisering och auktorisering. Det ger inget stöd för visningar eller mall eller en dedikerad ORM, eftersom den endast är avsedd att användas som ett API.
Loopback låter dig skapa ett dynamiskt API på några minuter med minimal kodning. Utvecklingscykeln är mycket snabb, och filstrukturen är ren och användbar. Installationen innehåller alternativ för att konfigurera eslint, snyggare, mocka och docker direkt ur lådan.
komma igång
npm install -g @loopback/clilb4 <project_name>
du blir ombedd att svara på flera frågor om hur du vill att din app ska ställas in och filstrukturen kommer att ställas in. cd i projektroten och kör
npm start
för att skapa en ny rutt, kör
lb4 controller
och svara på anvisningarna. När styrfilen har skapats kan du importera Loopback get-funktionen och använda den för att ställa in styrenheten
import {get} from '@loopback/rest';export class HelloController { @get('/hello') hello(): string { return 'Hello world!'; }}
sammanfattning: bästa nod.js ramverk
Ram | prestanda | gemenskap | användarvänlighet | bäst för |
---|---|---|---|---|
Express | snabbt. Lägger lite så ingenting att få int han sätt att Node rå hastighet. | massiv. Många frågor ställda och besvarade. | så svårt som du vill göra det. | stora och små projekt. Också ett bra sätt att lära sig att arbeta med Node. |
Segel | Medium. Fokus ligger på att förbättra utvecklarens effektivitet över prestanda. | stor. Ett väletablerat projekt som har funnits länge. | lätt. Ritningar gör det mycket enkelt att få ett API igång med minimal kodning. | medelstora projekt som behöver komma igång snabbt. |
Meteor | Långsammare. Fokus ligger på att stå upp/prototypa ett projekt mycket snabbt. | mindre men levande och växande. | lätt. Ritningar gör det mycket enkelt att få ett API igång med minimal kodning. | stå upp små projekt snabbt. Få händerna smutsiga med ett nytt verktyg. |
Loopback | Medium. | liten, men de som älskar det verkligen älskar det. | lätt men ger inte så mycket framåt. | bygga ett API i företagsskala för en separat frontend. |
slutsatser
det är svårt att välja en definitiv ”bästa” Nodram, eftersom ramverket du väljer kommer att ändras baserat på dina behov. Om du vill ha friheten att välja dina egna bibliotek och tredjepartsintegrationer kan Express eller Loopback vara din bästa insats. Men om ditt team vill stå upp en helt ny app fram och tillbaka om några dagar, kan Meteor eller Sails bättre passa dina behov.
det finns många andra ramar utöver de som diskuteras i den här artikeln, och det bästa sättet att veta vad som fungerar för din app eller team är att läsa igenom dokumenten och prova några.
- hur man använder ett API
- med JavaScript
- hur man skapar ett API
- med Node.js och Express.js
- hur man bygger en väderapp med nod.js
- hur man ställer in en GraphQL-Server med Node och Express