det kan være svært at vælge en ramme til din NodeJS-applikation. Der er så mange af dem med deres egne styrker og svagheder. I slutningen af dagen afhænger den ramme, du vælger, af dit programmeringsmiljø, og hvad du vil have din app til at gøre. Nogle rammer er lette, hurtige og er ligeglade med, hvordan du bygger din app. Andre har flere funktioner, men kan tvinge dig til at bruge deres motorer og organisere din kode på en bestemt måde.
målet med denne artikel er at sammenligne nogle af de mest populære Noderammer, så du i sidste ende kan beslutte, hvilken der passer til dit projekt.
Hvad er en ramme?
generelt er en ramme et supportsystem til din applikation. Node giver et sæt værktøjer til at interface med ting, din app har brug for, som netværket og filsystemet. En ramme udvider disse kapaciteter og abstracts væk nogle af de mere komplicerede aspekter af udvikling. For eksempel kan en behandler i din kode modtage et anmodningsobjekt fra netværket. En ramme kunne opfange dette anmodningsobjekt, før det når din handler, tilføje nogle yderligere metoder og muligheder for at gøre det lettere at arbejde med.
der er flere varianter af Node-rammen, og hver giver en anden programmeringsoplevelse.
MVC — rammer
MVC (Modelvisningskontroller) arkitektur er et nyttigt designmønster, der opdeler applikationslogik i tre dele-modeller til at definere formen på dataene, visninger til at organisere brugergrænsefladen og controllere til at kommunikere mellem de to. Noderammer, der understøtter MVC-arkitektur, er nyttige, hvis du ikke vil bruge for meget tid på at bekymre dig om, hvordan du organiserer din kode.
Ekspres
vi kan lige så godt få Ekspres ud af vejen først, da ingen liste over Knuderammer ville være komplet uden den. Ekspres er stadig den regerende mester for populære rammer, da dens 47,5 K Github-stjerner, 1,8 K Ure og 7,7 K gafler vil attestere. Dette alene gør det til et glimrende valg. Det er robust, velafprøvet, og der er et stort samfund, der vedligeholder og arbejder med det, der kan støtte dig og besvare spørgsmål.
udtrykker sig selv som en “hurtig, ikke-meningsfuld, minimalistisk ramme for Node.”Fokus er på ydeevne og leverer kun det, du har brug for. Rammen giver kun lidt funktionalitet i stedet for at give mulighed for omfattende mellemvarekæde til at behandle anmodninger.
Kom godt i gang
Opret en server.js eller app.js fil i roden af dit projekt og tilføj følgende kode
const express = require('express')const app = express()app.get('/', function (req, res) { res.send('Hello World')})app.listen(3000)
Kør serveren med
node ./server.js
og besøg localhost:3000 i din bro.ser for at se svaret.
sejl
sejl lægger vægt på stabilitet og brugervenlighed og giver meget mere ud af kassen end Ekspres. Det læner sig i fuld stack retning, yde støtte til godkendelse, sin egen ORM til database interface, Netbockets og templating. Sejl er mere meningsfuld end udtrykkelig — hvilket betyder, at du skal bruge den medfølgende ORM (vandlinje) og templating engine (EJS, selvom en udvidelse kaldet Consolid giver support til andre templating motorer, der er kompatible med ekspres.) Sails kan også prale af en imponerende API-generator kaldet Blueprints, som giver dig mulighed for at generere API-slutpunkter med minimal manuel kodning. Fra Sejldokumentationen:
…hvis du opretter en bruger.js model fil i dit projekt, så med blueprints aktiveret vil du være i stand til straks at besøge /bruger/oprette?navn=joe for at oprette en bruger, og besøg /bruger for at se en række af din apps brugere. Alle uden at skrive en enkelt linje kode!
sejl har eksisteret i lang tid og er blandt de mest populære rammer i henhold til dets Github-stjerner, synspunkter og gafler. Mange store virksomheder er afhængige af sejl, hvilket betyder, at det er robust nok til at understøtte applikationer på virksomhedsniveau.
Kom godt i gang
Sails giver en kraftfuld kommandolinjegrænseflade til at komme i gang med en ny app meget hurtigt
npm install -g sailssails new <project_name>
du bliver bedt om at vælge enten en skabelon med indbygget godkendelse og login eller en tom app. Når Sails er færdig med at konfigurere det grundlæggende, cd i din projektmappe og kør
sails lift
du kan nu navigere til localhost:1337 for at se den genererede hjemmeside.
Full-Stack-rammer
Full – stack-rammer giver struktur og funktionalitet til hele din applikation-fra klienten til serveren til databasen. En full-stack ramme kan komme med mange funktioner, herunder templating motorer, Netbocket biblioteker og ORMs. Afhængigt af størrelsen på dit team og din applikation kan disse funktioner være meget nyttige, eller de kan være mere, end du har brug for.
Meteor
Meteor er den næstmest stjernemarkerede, set og forked Node ramme på Github. Samfundet er levende, og dokumentationen er omfattende. Dokumentation omfatter bedste praksis, anbefalede stil guider og mange tutorials og tekniske artikler. Meteor leveres sammen med npm, og sin egen pakke manager kaldet atmosfære, samt indbygget understøttelse af en Mongo datastore og nem integration med React, kantet eller blis. Det er mere meningsfuldt end ekspres eller sejl.
Meteor bruger “data på ledningen” i modsætning til server-side rendering — så serveren sender data, ikke HTML, og klienten gør det. Meteor build værktøj giver ud af boksen støtte til mobil gennem Cordova og understøtter hot reloading.
Kom godt i gang
meteors byggeværktøj er det, der skaber, kompilerer og kører din app. Hent det via curl.
curl https://install.meteor.com/meteor create <project_name>
dette vil skabe filstrukturen for alt hvad du behøver i en grundlæggende Javascript app, organiseret i /klient og /server mapper. cd i dit projekt rod og kør
meteor run
appen skal nu køre på localhost:3000
REST API-rammer
hvis du har klientsiden af din applikation dækket, har du muligvis bare brug for en ramme for serverdelen af din stak. I dette tilfælde kan du gå med en simpel REST API-ramme bare for at håndtere CRUD-anmodninger til din server. Du kan stort set gøre dette med ekspres, men der er også rammer, der specifikt er rettet mod at håndtere denne særlige sag.
Loopback
Loopback er den næstmest populære REST API-ramme, ifølge Github. Udviklet af IBM er det en “meget udvidelig, open source-Knuderamme baseret på Ekspres, der giver dig mulighed for hurtigt at oprette API’ er og mikroservices.”Den leveres med et kommandolinjeværktøj til at generere projekter og skabe controllere og modeller med lethed og giver add-on support til nem godkendelse og autorisation. Det giver ikke nogen støtte til visninger eller templating eller en dedikeret ORM, da det kun er beregnet til at blive brugt som en API.
Loopback giver dig mulighed for at oprette en dynamisk API på få minutter med minimal kodning. Udviklingscyklussen er meget hurtig, og filstrukturen er ren og nyttig. Opsætningen indeholder muligheder for at konfigurere eslint, prettier, mokka og docker lige ud af kassen.
Kom godt i gang
npm install -g @loopback/clilb4 <project_name>
du bliver bedt om at besvare flere spørgsmål om, hvordan du vil have din app oprettet, og filstrukturen bliver stilladset. cd ind i projektets rod og kør
npm start
for at oprette en ny rute skal du køre
lb4 controller
og besvare vejledningen. Når controllerfilen er oprettet, kan du importere Loopback get-funktionen og bruge den til at konfigurere controlleren
import {get} from '@loopback/rest';export class HelloController { @get('/hello') hello(): string { return 'Hello world!'; }}
oversigt: bedste Node.JS rammer
ramme | ydeevne | fællesskab | brugervenlighed | bedst til |
---|---|---|---|---|
hurtig | hurtig. Tilføjer lidt så intet at få int han måde Node rå hastighed. | massiv. Mange spørgsmål stillet og besvaret. | så svært som du vil gøre det. | store og små projekter. Også en fantastisk måde at lære at arbejde med Node. |
Sejl | Medium. Fokus er på at forbedre udviklerens effektivitet over ydeevne. | stor. Et veletableret projekt, der har eksisteret i lang tid. | let. Blueprints gør det meget nemt at få en API i gang med minimal kodning. | mellemstore projekter, der har brug for at komme ud af jorden hurtigt. |
Meteor | Langsommere. Fokus er på at stå op/prototyper et projekt meget hurtigt. | mindre, men levende og voksende. | let. Blueprints gør det meget nemt at få en API i gang med minimal kodning. | stående op små projekter hurtigt. Få dine hænder beskidte med et nyt værktøj. |
Loopback | Medium. | lille, men de, der elsker det, elsker det virkelig. | let, men giver ikke så meget op foran. | opbygning af en Enterprise-skala API til en separat frontend. |
konklusioner
det er svært at vælge en endelig “bedste” Noderamme, da den ramme, du vælger, ændres baseret på dine behov. Hvis du vil have friheden til at vælge dine egne biblioteker og tredjepartsintegrationer, kan ekspres eller Loopback være dit bedste valg. Men hvis dit team ønsker at stå op en helt ny app front til back i løbet af få dage, Meteor eller sejl passer måske bedre til dine behov.
der er mange andre rammer ud over dem, der diskuteres i denne artikel, og den bedste måde at vide, hvad der fungerer for din app eller dit team, er at læse gennem dokumenterne og prøve et par stykker.
- Sådan bruges en API
- med JavaScript
- Sådan oprettes en API
- med Node.JS og ekspres.js
- hvordan man opbygger en vejr App med Node.js
- Sådan oprettes en server med Node og ekspres