Kuidas Fastifyga üles saada ja joosta?

https://www.fastify.io/
Kiire ja madal veebiraamistik Node.js jaoks

Fastify versioon 1 ilmus 7. märtsil. See postitus näitab teile, kuidas seda seadistada, ja arutame mõnda uskumatut funktsiooni, mida Fastify pakub. Seadistamine pole vajalik - rakenduse Fastify koodialus töötab sõlme versioonides 6.x, 8.x ja 9.x.

Kas olete valmis?

Alustage npm i täpsusta ja siis:

const fastify = nõua ('fastify') ()
fastify.get ('/', (taotlus, vastus) => {
  vastus.saat ({tere: 'maailm'})
})
fastify.listen (3000, viga => {
  if (eks) {
    fastify.log.error (viga)
    protsess.exit (1)
  }
  fastify.log.info (
    `server kuulab asukohta $ {fastify.server.address (). port} '
  )
})

Nüüd käivitage oma server aadressiga: node server

nii see on! Teie esimene Fastify server on üles töötatud.

Mis siin toimub?

const fastify = nõua ('fastify') ()

1. rida impordib raamistiku Fastify JavaScripti projekti ja muudab selle hetkeseks. Teie serveri eksemplar on nüüd salvestatud muutujasse fastify. Sellele reale saate edastada lisavalikuid, näiteks nii:

const fastifyWithOptions = nõua ('täpsusta') ({
  puuraidur: {
    prettyPrint: tõsi
  }
})

Pino logija toitel see variant muudab konsooli väljundi hõlpsasti loetavaks ja värviliseks. Logija lisavõimaluste kohta saate teavet Pino dokumentatsioonist ja muude eksemplarilahenduste kiirendamise kohta dokumentide täpsustamisest Fastify.

Järgmine üles: marsruutimine

fastify.get ('/', (taotlus, vastus) => {
  vastus.saat ({tere: 'maailm'})
})

Liinid 3–5 määratlevad väga lihtsa marsruudi. Marsruudid on kõigi Node.js-i tagapõhiserverite tuum. Fastify toetab kahte meetodit marsruutide määratlemiseks: ülalpool kasutatud kiirjärjestuse meetodit või allpool näidatud üldist marsruudimeetodit.

täpsustage marsruuti ({
  meetod: 'GET',
  URL: '/',
  töötleja: funktsioon (päring, vastus) {
    vastus.saat ({tere: 'maailm'})
  }
})

Mõlemad rakendused teevad täpselt sama asja ja sama jõudlusega, nii et kasutage lihtsalt seda, mis teile kõige mõistlikum on.

Marsruudi deklareerimisel on saadaval veel palju võimalusi, mida siin ei kuvata.

  • Esitage JSON-skeem päringute ja vastuste objektide jaoks, mis võib läbilaskevõimet suurendada 10–20%
  • Määratlege enneHandleri meetod, mida kutsutakse vahetult enne käitleja funktsiooni. See sobib suurepäraselt autentimiseks ja demonstreerin, kuidas seda oma JWT Authi pistikprogrammis kasutada (lisateave hiljem pluginate lisamise kohta).

Käivitage mootorid! 3… 2… 1… MINE!

fastify.listen (3000, viga => {
  if (eks) {
    fastify.log.error (viga)
    protsess.exit (1)
  }
  fastify.log.info (
    `server kuulab asukohta $ {fastify.server.address (). port} '
  )
})

Lõpuks käivitage kohtfastifitseerimise eksemplar localhost pordil 3000. See on viimane samm, mida vajate oma Fastify astme loomiseks. Sisemiselt ootab see meetod .ready () (mida kutsutakse pärast pistikprogrammide laadimist). Pärast .listen () -meetodi kutsumist ei saa uusi marsruute määratleda.

Mis järgmiseks? Pluginad!

Üks Fastify parimatest omadustest on see, kui lihtne on pluginate serveri eksemplari kirjutada ja lisada. Alustamiseks määrake funktsioon:

funktsioon superPlugin (täpsustage, valib järgmise) {
  fastify.decorate ('superMethod', () => {
    console.log (`Salajane kood: $ {opts.secretCode}`)
  })
  järgmine ()
}

Eksportige nüüd uus pistikprogramm, kasutades moodulit fastify plugin.

const fp = vaja ('täpsusta plugin')
module.exports = fp (superPlugin, {
  täpsustage: '> = 1.0.0',
  nimi: 'ülipikendus'
})

Lõpuks registreerige oma pistikprogramm Fastify eksemplarile:

/ * Põhifaili server.js sees * /
const superPlugin = nõuda ('ülipikendus')
fastify.register (superPlugin, {
  secretCode: "JavaScript on fantastiline!"
})

Nüüd saate helistada supermetoodikale kõikjal, kus teil on juurdepääs oma rakendusele Fastify.

/ * server.js * /
fastify.listen (3000, viga => {
  fastify.superMethod ()
})

Lihtsalt märkus: saate pistikprogramme registreerida ka teiste pistikprogrammide sees, mis lukustab selle lapse pistikprogrammi ulatuse ainult vanema pistikprogrammi jaoks. See teema on selle artikli jaoks liiga arenenud, nii et ma ei käsitle seda üksikasjalikumalt. Lisateavet Fastify pistikprogrammide kohta saate lugeda siit. Siit saate vaadata kõiki Githubi sisukorra näidisfaile.

Mine edasi ja valluta

Fastify on kiire. Tõesti väga kiire 🏎

Täpsustage võrdlusaluseid v1.1.x

Pärast seda lühitutvustust julgustan teid tutvuma kõigega, mida Fastify pakub. Kui teile meeldib avatud lähtekoodiga programmeerimine, on Fastify suurepärane projekt, millesse ka oma panus anda. Samuti on olemas suurepärane pistikprogrammide ökosüsteem, mida saate kontrollida ja millesse oma panuse anda!

Jätkake suurt teost ~ Ethan Arrowood