het kiezen van een framework voor uw NodeJS applicatie kan moeilijk zijn. Er zijn er zoveel, met hun eigen sterke en zwakke punten. Aan het einde van de dag, het kader dat u kiest zal afhangen van uw programmeeromgeving, en wat u wilt dat uw app te doen. Sommige frameworks zijn lichtgewicht, snel en niet de zorg over hoe je je app te bouwen. Anderen hebben meer functies, maar kunnen je dwingen om hun motoren te gebruiken en je code op een bepaalde manier te organiseren.
het doel van dit artikel is om een aantal van de meest populaire knooppunt frameworks te vergelijken zodat u uiteindelijk kunt beslissen welke geschikt is voor uw project.
Wat is een Framework?
in het algemeen is een framework een ondersteuningssysteem voor uw toepassing. Node biedt een set tools om te communiceren met dingen die uw app nodig heeft, zoals het netwerk en het bestandssysteem. Een raamwerk breidt deze mogelijkheden uit en abstraheert enkele van de meer gecompliceerde aspecten van de ontwikkeling. Een handler in uw code kan bijvoorbeeld een aanvraagobject van het netwerk ontvangen. Een framework kan dit request object onderscheppen voordat het je handler bereikt, wat extra methoden en mogelijkheden toevoegt om het gemakkelijker te maken om mee te werken.
er zijn verschillende smaken van het Node framework, en elk biedt een andere programmeerervaring.
MVC Frameworks
MVC (Model View Controller) architectuur is een nuttig ontwerppatroon dat applicatielogica splitst in drie delen — modellen om de vorm van de gegevens te definiëren, weergaven om de gebruikersinterface te organiseren en controllers om tussen de twee te communiceren. Knooppunt frameworks die MVC-architectuur ondersteunen zijn handig als u niet te veel tijd wilt besteden aan het organiseren van uw code.
Express
we kunnen net zo goed eerst Express uit de weg ruimen, aangezien geen lijst met knooppuntframeworks compleet zou zijn zonder deze lijst. Express is nog steeds de regerend kampioen van de populaire frameworks, zoals de 47.5 K GitHub sterren, 1.8 K horloges, en 7.7 K vorken zal getuigen. Dit alleen al maakt het een uitstekende keuze. Het is robuust, goed getest, en er is een grote gemeenschap onderhouden en werken met het die u kan ondersteunen en vragen te beantwoorden.
Express gebruikt zichzelf als een ” snel, niet-eigenwijs, minimalistisch framework voor Node.”De focus ligt op prestaties en alleen bieden wat je nodig hebt. Het framework biedt weinig functionaliteit op zich, in plaats van het mogelijk te maken voor uitgebreide middleware chaining om verzoeken te verwerken.
aan de slag
Maak een server aan.js of app.js bestand in de root van uw project en voeg de volgende code
const express = require('express')const app = express()app.get('/', function (req, res) { res.send('Hello World')})app.listen(3000)
start de server met
node ./server.js
en bezoek localhost: 3000 in uw browser om het antwoord te zien.
zeilen
zeilen benadrukken stabiliteit en gebruiksgemak en bieden veel meer out of the box dan Express. Het leunt in de volledige stack richting, het verstrekken van ondersteuning voor authenticatie, zijn eigen ORM voor database interfacing, WebSockets en templating. Sails is meer eigenwijs dan Express-wat betekent dat u de meegeleverde ORM (waterlijn) en templating engine (EJS, hoewel een extensie genaamd Consolidate biedt ondersteuning voor andere templating motoren die compatibel zijn met Express.) Sails beschikt ook over een indrukwekkende API generator genaamd Blueprints, waarmee u API-eindpunten te genereren met minimale handmatige codering. Uit de zeilen documentatie:
…als u een gebruiker maakt.js model bestand in uw project, dan met blueprints ingeschakeld zult u in staat om onmiddellijk te bezoeken / user / create?name = joe om een gebruiker aan te maken, en bezoek /user om een array van de gebruikers van uw app te zien. Allemaal zonder een enkele regel code te schrijven!
Sails bestaat al een lange tijd en is een van de meest populaire frameworks volgens haar Github sterren, views en vorken. Veel grote bedrijven vertrouwen op Zeilen, wat betekent dat het robuust genoeg is om toepassingen op ondernemingsniveau te ondersteunen.
aan de slag
Sails biedt een krachtige opdrachtregelinterface om snel met een nieuwe app aan de slag te gaan
npm install -g sailssails new <project_name>
u wordt gevraagd om een web app template te kiezen met ingebouwde authenticatie en login of een lege app. Zodra Sails klaar is met het opzetten van de basics, cd in uw projectmap en
sails lift
uitvoert, kunt u nu navigeren naar localhost: 1337 om de gegenereerde homepage te zien.
Full-Stack Frameworks
Full-stack frameworks bieden structuur en functionaliteit voor uw gehele toepassing – van de client tot de server tot de database. Een full-stack framework kan worden geleverd met vele functies, waaronder templating engines, WebSocket bibliotheken, en ORMs. Afhankelijk van de grootte van uw team en applicatie, kunnen deze functies zeer nuttig zijn of ze kunnen meer zijn dan u nodig hebt.Meteor
Meteor
Meteor is het op een na meest stervormige, bekeken en gevorkte Knooppuntraamwerk op Github. De Gemeenschap is levendig en de documentatie is uitgebreid. Documentatie bevat best practices, aanbevolen stijl gidsen en vele tutorials en technische artikelen. Meteor komt gebundeld met npm, en zijn eigen package manager genaamd Atmosphere, evenals ingebouwde ondersteuning voor een Mongo datastore en eenvoudige integratie met React, Angular of Blaze. Het is meer eigenwijs dan Express of zeilen.
Meteor gebruikt “data on the wire” in tegenstelling tot server-side rendering — dus de server verzendt data, niet HTML, en de client maakt het. De Meteor build tool biedt out of the box ondersteuning voor mobiel via Cordova en ondersteunt warm herladen.
aan de slag
Meteor ‘ s build tool is wat maakt, compileert en draait uw app. Download het via curl.
curl https://install.meteor.com/meteor create <project_name>
hiermee wordt de bestandsstructuur gecreëerd voor alles wat u nodig hebt in een eenvoudige Javascript-app, georganiseerd in /client-en /server-mappen. cd in uw project root en uitvoeren
meteor run
de app moet nu draaien op localhost:3000
REST API Frameworks
als u de client-kant van uw applicatie hebt gedekt, hebt u misschien gewoon een framework nodig voor het server-deel van uw stack. In dit geval, je zou kunnen gaan met een eenvoudige REST API framework alleen om CRUD verzoeken om uw server af te handelen. Je kunt dit vrijwel doen met Express, maar er zijn ook kaders die specifiek zijn gericht op het behandelen van dit specifieke geval.
Loopback
Loopback is het tweede meest populaire REST API framework, volgens Github. Ontwikkeld door IBM, het is een “zeer uitbreidbaar, open-source node framework op basis van Express waarmee u snel API’ s en microservices te maken.”Het wordt geleverd met een command-line tool voor het genereren van projecten en het creëren van controllers en modellen met gemak en biedt add-on ondersteuning voor eenvoudige authenticatie en autorisatie. Het biedt geen ondersteuning voor weergaven of templating of een dedicated ORM, omdat het bedoeld is om alleen te worden gebruikt als een API.
Loopback stelt u in staat om binnen enkele minuten een dynamische API te maken met minimale codering. De ontwikkelingscyclus is zeer snel, en de bestandsstructuur is schoon en nuttig. Setup bevat opties om eslint, prettier, mocha en docker direct uit de doos te configureren.
aan de slag
npm install -g @loopback/clilb4 <project_name>
u wordt gevraagd om een aantal vragen te beantwoorden over hoe u uw app wilt instellen, en de bestandsstructuur zal worden aangescherpt. cd in de project root en voer
npm start
uit om een nieuwe route aan te maken, voer
lb4 controller
uit en Beantwoord de prompts. Zodra het controllerbestand is aangemaakt, kunt u de Loopback get-functie Importeren en deze gebruiken om de controller
import {get} from '@loopback/rest';export class HelloController { @get('/hello') hello(): string { return 'Hello world!'; }}
samenvatting: beste Node in te stellen.js Frameworks
kader | prestatie | gemeenschap | gebruiksgemak | Best voor |
---|---|---|---|---|
Express | snel. Voegt weinig dus niets te krijgen int hij weg van Node ‘ s ruwe snelheid. | massief. Veel vragen gesteld en beantwoord. | zo moeilijk als u het wilt maken. | grote en kleine projecten. Ook een geweldige manier om te leren hoe te werken met Node. |
Zeilen | Middelzwaar. De focus ligt op het verbeteren van de efficiëntie van ontwikkelaars boven de prestaties. | groot. Een goed opgezet project dat al een lange tijd bestaat. | gemakkelijk. Blauwdrukken maken het heel gemakkelijk om een API up and running te krijgen met minimale codering. | middelgrote projecten die snel van de grond moeten komen. |
Meteor | Langzamer. De Focus ligt op het snel opstaan / prototyperen van een project. | kleiner, maar levendig en groeiend. | gemakkelijk. Blauwdrukken maken het heel gemakkelijk om een API up and running te krijgen met minimale codering. | kleine projecten snel op gang brengen. Je handen vuil maken met een nieuw gereedschap. |
Loopback | Medium. | klein, maar wie ervan houdt, houdt er echt van. | eenvoudig, maar geeft niet zoveel vooraf. | bouwen van een API op ondernemingsschaal voor een aparte front-end. |
conclusies
het is moeilijk om een definitief “beste” knooppuntraamwerk te kiezen, omdat het raamwerk dat u kiest zal veranderen op basis van uw behoeften. Als u de vrijheid wilt om uw eigen bibliotheken en integraties van derden te kiezen, kan Express of Loopback uw beste keuze zijn. Maar als uw team wil opstaan een gloednieuwe app front naar back in een kwestie van een paar dagen, Meteor of Sails misschien beter aan uw behoeften.
er zijn veel andere frameworks die verder gaan dan de frameworks die in dit artikel worden besproken, en de beste manier om te weten wat werkt voor je app of team is door de documenten te lezen en er een paar uit te proberen.
- een API
- gebruiken met JavaScript
- hoe een API
- te maken met Node.js En Express.js
- Hoe maak je een Weer App te bouwen met Node.js
- het Instellen van een GraphQL Server met Knoop en Express