Express.js yra populiarus dėl rimtos priežasties, tačiau yra keletas galingų parinkčių, kurias galbūt norėsite apsvarstyti.
„Node.js“ platforma padeda kurti keičiamo dydžio, didelio našumo žiniatinklio programas, o „Express.js“ remiasi tuo, kad procesas būtų dar lengvesnis.
Tačiau tobulėjant žiniatinklio kūrimo aplinkai atsirado Express.js sistemos alternatyvų. Jie siūlo išplėstines funkcijas, geresnį našumą ir labiau modulinį požiūrį į žiniatinklio programų kūrimą.
Ištirkite kai kurias populiariausias Express.js alternatyvas ir pagrindinius jų privalumus bei funkcijas.
1. Nest.js
Nest.js yra progresyvi Node.js sistema, skirta efektyvioms ir prižiūrimoms serverio programoms kurti. Tai suteikia „Angular“ įkvėptą „out-of-the-box“ taikomųjų programų architektūrą, kuri leidžia kurti išbandomas, laisvai susietas, prižiūrimas programas.
Nest.js naudoja Express.js sistemą pagal numatytuosius nustatymus, tačiau galite sukonfigūruoti jį naudoti alternatyvą, pvz., Fastify. Nest.js visiškai palaiko „TypeScript“ ir naudoja jį pagal numatytuosius nustatymus, tačiau, jei norite, galite naudoti „JavaScript“.
Be to, Nest.js turi CLI įrankį, kuris palengvina kūrimą automatizuodamas užduotis, pvz., generuojant pagrindinį kodą. Jame taip pat yra įtaisytas palaikymas tokioms funkcijoms kaip priklausomybės injekcija.
Nest.js galite įdiegti naudodami npm, „JavaScript“ paketų tvarkyklė, vykdydami toliau pateiktą komandą:
npm install -g @nestjs/cli
Ši komanda įdiegia Nest.js CLI. Galite sukurti naują Nest.js projektą vykdydami šią komandą:
lizdas naujas
Štai kaip atrodo Nest.js serveris:
importuoti { NestFactory } iš„@nestjs/core“;
importuoti { AppModule } iš„./app.module“;asyncfunkcijabootstrap() {
konst programa = laukti NestFactory.create (AppModule);
laukti app.listen(3000);
}
bootstrap ();
Nest.js modulinė architektūra, palaikanti priklausomybės įvedimą ir savąjį „TypeScript“ palaikymą, yra puikus pasirinkimas kuriant modernias serverio programas.
2. Paspartinti
„Fastify“ yra „Node.js“ žiniatinklio sistema, sukurta taip, kad būtų greita. Jis žinomas dėl didelio našumo ir gebėjimo patenkinti daugybę užklausų su minimaliomis papildomomis išlaidomis.
Vienas iš pagrindinių skirtumų nuo Express yra tas, kad Fastify buvo sukurtas taip, kad būtų labai optimizuotas našumui. Jame taip pat naudojama galinga įskiepių architektūra, leidžianti lengvai išplėsti programos funkcionalumą naudojant papildinius.
„Fastify“ taip pat naudoja „Pino“. medienos ruošos paketas išimtas iš dėžutės, suteikdamas galingą registravimo sistemą neprarandant našumo.
Galite įdiegti „Fastify“ naudodami šią komandą:
npm įdiegti fastify
Štai paprasto serverio, sukurto naudojant „Fastify“, pavyzdys:
konst paspartinti = reikalauti('paspartinti')({ medkirtys: tiesa })
// Maršruto kūrimas
fastify.get('/', async (užklausa, atsakymas) => {
grąžinti { žinutę: "Labas pasauli"}
})// Serverio paleidimas
konst pradžia = async () => {
bandyti {
laukti fastify.listen({ uostas: 3000 })
} sugauti (err) {
fastify.log.error (err)
process.exit(1)
}
}
pradžia ()
„Fastify“ idealiai tinka didelio srauto programoms, nes sistema tvarko daugybę užklausų neprarandant saugumo.
3. Sails.js
Sails.js yra žiniatinklio sistema, skirta Node.js, skirta modelio peržiūros valdiklio (MVC) stiliaus žiniatinklio programoms kurti. Jis žinomas dėl savo konfigūravimo per daug konfigūravimo metodo, kuris gali padėti supaprastinti kūrimą ir palengvinti naujo projekto pradžią.
Pagrindiniai „Sails.js“ ir „Express“ skirtumai yra jų nuomonės pobūdis ir „Sails“ integruotas funkcijų, tokių kaip modeliai, valdikliai ir paslaugos, palaikymas. Tai gali padėti tvarkyti kodą ir lengviau kurti keičiamo dydžio ir prižiūrimas programas.
Galite įdiegti Sails.js vykdydami toliau pateiktą komandą:
npm įdiegti bures -g
Galite sukurti naują „Sails“ programą naudodami šią komandą:
burės naujos
Ir jūs galite paleisti savo burių projektą vykdydami šią komandą:
burių keltuvas
Štai CLI sugeneruoto Sails serverio pavyzdys:
var burės;
var rc;bandyti {
burės = reikalauti("burės");
rc = reikalauti('burės/prieinama/rc');
} sugauti (err) {
konsolė.error(„Bandant reikalauti('sails'): įvyko klaida.);
konsolė.error (err.stack);
konsolė.error('--');
konsolė.error(„Norėdami paleisti programą naudodami „node app.js“, turite įdiegti „Sails“);
konsolė.error("lokaliai (`./node_modules/sails`). Norėdami tai padaryti, tiesiog įsitikinkite, kad esate");
konsolė.error(„tame pačiame kataloge kaip ir jūsų programa ir paleiskite „npm install“.);
konsolė.error();
konsolė.error(„Jei „Sails“ įdiegta visame pasaulyje (t. y. „npm install -g sails“), galite“);
konsolė.error(„Taip pat paleiskite šią programą naudodami „burių keltuvą“. Bėgimas su „burių keltuvu“);
konsolė.error(„nepaleisti šio failo („app.js“), bet jis atliks lygiai tą patį.);
konsolė.error((Jei įmanoma, netgi naudojamas jūsų programų katalogo vietinis „Sails“ diegimas.));
grąžinti;
}
// Paleisti serverį
sail.lift (rc("burės"));
Sails.js taip pat turi integruotą palaikymą tokioms funkcijoms kaip bendravimas realiuoju laiku ir autentifikavimas, taupantis laiką ir pastangas kuriant sudėtingas programas.
4. Hapi.js
Hapi.js yra žiniatinklio sistema, skirta Node.js, sukurta taip, kad ją būtų lengva naudoti ir ją būtų galima lengvai konfigūruoti. Jis žinomas dėl savo įskiepių architektūros, leidžiančios prireikus pridėti ir pašalinti funkcionalumą, ir didžiausio dėmesio saugumui bei patikimumui.
Vienas iš pagrindinių Hapi.js ir Express skirtumų yra tas, kad Hapi.js siūlo labiau apgalvotą ir struktūrizuotą požiūrį į žiniatinklio programų kūrimą.
Jo integruota papildinių sistema leidžia lengvai pridėti tokių funkcijų kaip autentifikavimas, talpyklos kaupimas ir registravimas. Jame taip pat yra integruotas įvesties patvirtinimo ir klaidų apdorojimo palaikymas.
Galite įdiegti Hapi.js vykdydami toliau pateiktą komandą:
npm įdiegti @hapi/hapi
Štai paprasto serverio, sukurto naudojant „Hapi“, pavyzdys:
konst Hapi = reikalauti("@hapi/hapi");
konst init = async () => {
konst serveris = Hapi.serveris({
prievadas: 3000,
šeimininkas: "vietinis šeimininkas",
});server.route({
metodas: "GAUTI",
kelias: "/",
prižiūrėtojas: (prašymas, h) => {
grąžinti"Labas pasauli!";
},
});laukti serveris.start();
konsolė.log("Programa veikia %s", server.info.uri);
};process.on("netvarkomas atmetimas", (err) => {
konsolė.log (err);
process.exit(1);
});
init();
Hapi.js taip pat yra labai saugus dėl tokių funkcijų, kaip įtaisyta kelių svetainių užklausų klastojimo (CSRF) apsauga, antraštės patvirtinimas ir užklausos patvirtinimas. Tai padeda išvengti įprastų saugumo spragų ir užkirsti kelią galimoms atakoms.
5. Koa.js
Koa.js yra žiniatinklio sistema, skirta Node.js, sukurta Express.js komandos. Jis žinomas dėl savo minimalistinio dizaino ir daugiausia dėmesio skiriant tarpinei programinei įrangai, todėl lengva kurti didelio našumo žiniatinklio programas.
Koa.js buvo sukurtas taip, kad būtų lengvesnis ir lankstesnis nei Express. Jame naudojama paprasta tarpinės programinės įrangos architektūra, leidžianti lengvai pridėti arba pašalinti funkcijas, jei reikia.
Galite įdiegti Koa.js vykdydami toliau pateiktą komandą:
npm įdiegti koa
Štai paprasto serverio, sukurto naudojant Koa.js, pavyzdys:
konst Koa = reikalauti("koa");
konst programa = naujas Koa ();
konst maršrutizatorius = reikalauti("koa maršrutizatorius");
konst Vartotojas = reikalauti("./models/user");router.get('/Vartotojo ID', async (ctx) => {
bandyti {
konst vartotojas = laukti User.findById (ctx.params.id);
ctx.body = vartotojas;
} sugauti (e) {
ctx.status = 404;
ctx.body = {
klaida: 'Vartotojas nerastas'
};
}
});app.use (router.routes());
app.listen(3000, "vietinis šeimininkas");
Koa.js taip pat apima įtaisytąjį palaikymą tokioms funkcijoms kaip užklausų / atsakymų registravimas, klaidų tvarkymas ir derybos dėl turinio, o tai gali padėti kūrimą pagreitinti ir efektyvinti.
Karkaso pasirinkimas kitam projektui
Svarbu pasirinkti sistemą kitai Node.js programai, nes tai tiesiogiai veikia visą kūrimo ir gamybos procesą. Be to, tai taip pat paveiks jūsų programų naudotojų patirtį.
Būtina atsižvelgti į tokius veiksnius kaip sistemos architektūra, naudojimo paprastumas, greitis ir lankstumas. Šie veiksniai ir jūsų projekto tikslai bei reikalavimai padės jums pasirinkti savo projekto struktūrą.