Burada Fastify ilə işə başlamaq üçün məlumat verilir

https://www.fastify.io/
Node.js üçün sürətli, aşağı yerüstü veb çərçivə

Fastify versiyası 1 7 Martda yayımlandı. Bu yazıda onu necə quracağınıza dair məlumat verəcəyik və Fastify-ın təqdim etdiyi bəzi inanılmaz xüsusiyyətləri nəzərdən keçirəcəyik. Heç bir konfiqurasiya tələb olunmur. Fastify'ın kod bazası 6.x, 8.x və 9.x düyün versiyalarında işləyə bilər.

Hazırsınız?

I fastify npm ilə başlayın və sonra:

const fastify = tələb ('fastify') ()
fastify.get ('/', (sorğu, cavab) => {reply.send ({salam: 'dünya'})})
fastify.listen (3000, səhv => {if (səhv) {fastify.log.error (səhv) process.exit (1)} fastify.log.info (`Server gözləyir $ {fastify.server.address (). port} ")})

İndi serverinizi node server ilə başlayın

Elədir! İlk Fastify serverinizi işə saldınız.

Burda nə baş verir?

const fastify = tələb ('fastify') ()

Sətir 1 Fastify çərçivəsini JavaScript layihəsinə idxal edir və hazırlayır. Server nümunəniz indi fastify dəyişənində saxlanılır. Bu sətrə əlavə seçimləri aşağıdakı kimi verə bilərsiniz:

const fastifyWithOptions = need ('fastify') ({Logger: {prettyPrint: true}})

Pino-Logger tərəfindən dəstəklənən bu seçimlə konsol çıxışı oxunması asan və rənglidir. Giriş üçün daha çox seçim üçün Pino sənədlərinə və Fastify nümunəsi üçün daha çox seçim üçün Fastify sənədlərinə baxın.

Sonra: marşrutlaşdırma

fastify.get ('/', (sorğu, cavab) => {reply.send ({salam: 'dünya'})})

3 - 5 sətirlər çox sadə bir marşrutu müəyyənləşdirir. Marşrutlar hər Node.js arxa serverinin əsas hissəsidir. Fastify, marşrutların müəyyənləşdirilməsinin iki metodunu dəstəkləyir: yuxarıda istifadə olunan stenoqrafiya metodu və ya ümumi .route metodu (aşağıya bax).

fastify.route ({metod: 'GET', URL: '/', işləyici: function (sorğu, cavab) {reply.send ({salam: 'dünya'})}})

Bu iki tətbiqetmə eyni şeyi edir və eyni performansa malikdir. Buna görə yalnız sizin üçün ən mənalı olanı istifadə edin.

Marşrut məlumatları burada göstərilməyən bir çox başqa variant təklif edir.

  • Sorğu və cavab vermə obyektləri üçün məhsuldarlığı 10-20% artıra biləcək bir JSON şeması verin.
  • İşləyici funksiyasından əvvəl deyilən bir əvvəlki iş metodunu təyin edin. Bu, identifikasiya üçün əladır və JWT Auth plaginimdə necə istifadə olunduğunu göstərəcəyəm (daha sonra Fastify plaginləri haqqında).

Mühərriklərinizi işə salın! 3… 2… 1 ... GET!

fastify.listen (3000, səhv => {if (səhv) {fastify.log.error (səhv) process.exit (1)} fastify.log.info (`Server gözləyir $ {fastify.server.address (). port} ")})

Nəhayət, yerli host port 3000-də Fastify instansiyasına başlayın. Bu, öz Fastify nümunənizi yaratmaq üçün tələb olunan son addımdır. Daxili olaraq, bu metod .ready () (plaginlər yükləndikdən sonra çağırılır) üçün gözləyir. .Listen () metodunu çağırdıqdan sonra yeni marşrutlar müəyyən edilə bilməz.

Nə var? Plugins!

Fastify ilə əlaqəli ən yaxşı şeylərdən biri, bir server nümunəsində plaginlərin yazılmasının və birləşdirilməsinin nə qədər asandır. Əvvəlcə bir funksiyanı təyin edin:

SuperPlugin funksiyası (fastify, opts, next) {fastify.decorate ('superMethod', () => {console.log ("Gizli kod: $ {opts.secretCode}")}) Next ()}

İndi modul fastify-plugin ilə yeni eklentinizi ixrac edin.

const fp = tələb ('fastify-plugin')
module.exports = fp (superPlugin, {fastify: '> = 1.0.0', ad: "Super-Plugin"})

Nəhayət, eklentinizi Fastify instansiyanıza qeyd edin:

/ * Əsas server.js * / const superPlugin = tələb ('super-plugin')
fastify.register (superPlugin, {secretCode: "JavaScript əladır!"})

İndi Fastify instansiyanıza daxil olduğunuz yerdə superMethod-a zəng edə bilərsiniz.

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

Diqqət yetirin: Plaginləri digər plaginlərdə qeydiyyatdan keçirə bilərsiniz, yəni bu tabe plaginin sahəsi yalnız ana plagin üçün bloklanmışdır. Bu mövzu bu məqalə üçün çox inkişaf etmişdir, buna görə daha çox danışmayacağam. Fastify plaginləri haqqında daha çox məlumatı burada tapa bilərsiniz. Github icmalında tam nümunə sənədlərini burada tapa bilərsiniz.

Çölə çıxın və qazanın

Fastify sürətli. Həqiqətən çox sürətli 🏎

Qiymətləndirmə v1.1.x

Bu qısa təqdimatdan sonra sizi Fastify-ın təqdim etdiyi bütün şeyləri nəzərdən keçirməyinizi tövsiyə edirəm. Açıq mənbə proqramlaşdırmağı sevirsinizsə, Fastify da töhfə vermək üçün əla bir layihədir. İştirak etmək üçün əla eklentinin ekosistemi də var!

Davam edin ~ Ethan Arrowood