国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Fastfiy基礎指南

svtter / 2534人閱讀

摘要:什么是是一個高度專注于以最少開銷和強大的插件架構,為開發(fā)人員提供最佳體驗的框架。它受到了和的啟發(fā),是目前最快的框架之一。

什么是 Fastify?

Fastify 是一個高度專注于以最少開銷和強大的插件架構,為開發(fā)人員提供最佳體驗的 Web 框架。

它受到了 HapiExpress 的啟發(fā),是目前最快的 Node 框架之一。

Fastify 獨特的將 JSON Schema 應用到請求時的 validation 和響應時的 serialization, 作者寫的 fast-json-stringify 包更是達到了2x faster than JSON.stringify的神奇效果。

為什么要使用 Fastify

100% 異步:框架的核心都是用異步代碼實現(xiàn)的

高性能:每秒可以提供34000個請求

可擴展:Fastify 通過其鉤子插件裝飾器完全可擴展

基于模式:即使不是強制性的,我們建議使用 JSON Schema 來驗證路由并序列化輸出

日志記錄:日志非常重要,但成本高昂,我們選擇了最好的記錄器 Pino

對開發(fā)者友好:該框架構建非常有表現(xiàn)力,不會犧牲性能和安全性

如何安裝fastify? 使用 npm 安裝:
npm i fastify --save
使用 yarn 安裝:
yarn add fastify
腳手架安裝 全局安裝
npm i fastify-cli -g
進入目錄
cd [myproject]
初始化Fastify腳手架
fastify generate
運行
npm start
如何創(chuàng)建一個簡單的 Fastify 應用?

聲明一個監(jiān)聽客戶端http://127.0.0.1:3000/的「GET」請求

Fastify返回 { hello: "world" }

// 加載框架并新建實例
const fastify = require("fastify")({
  // 開始日志記錄
  logger: true
})

// 聲明路由
fastify.get("/", function(request, reply) {
  reply.send({ hello: "world" })
})

// 啟動服務!
fastify.listen(3000, function(err, address) {
  if (err) {
    fastify.log.error(err)
    process.exit(1)
  }
  fastify.log.info(`server listening on ${address}`)
})

-n-

我們還可以利用async/await特性,講Fastify進行異步操作
const fastify = require("fastify")()

fastify.get("/", async (request, reply) => {
  return { hello: "world" }
})

const start = async () => {
  try {
    await fastify.listen(3000)
  } catch (err) {
    fastify.log.error(err)
    process.exit(1)
  }
}
start()
就如同在 JavaScript 中一切皆為對象,在 Fastify 中,一切都是插件 (plugin)。

新建一個基礎的插件

// my-first-pugin.js
async function routes (fastify, options) {
  fastify.get("/", async (request, reply) => {
    return { hello: "world" }
  })
}

module.exports = routes

在服務器上注冊這個插件

const fastify = require("fastify")()

// 注冊插件
fastify.register(require("./our-first-route"))
// 監(jiān)聽3000端口號,啟動
fastify.listen(3000, function (err, address) {
  if (err) {
    fastify.log.error(err)
    process.exit(1)
  }
  fastify.log.info(`server listening on ${address}`)
})
為了優(yōu)化解析 JSON 與序列化 JSON 輸出的過程,F(xiàn)astify 可以序列化數(shù)據(jù)

我們可以在schema的選項中設置 response 的值,能夠加快 JSON 的序列化

約束200狀態(tài)碼的response的數(shù)據(jù)格式
const opts = {
  schema: {
    response: {
      200: {
        type: "object",
        properties: {
          hello: { type: "string" }
        }
      }
    }
  }
}
fastify.get("/", opts, async (request, reply) => {
  return { hello: "world" }
})

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/105583.html

相關文章

  • 《5G網絡云基礎設施安全指南》第I部分發(fā)布

    摘要:美國國家安全局和網絡安全與基礎設施安全局近期發(fā)布了網絡云基礎設施安全指南第部分防止和檢測橫向移動以下簡稱指南。如開篇所述,企業(yè)組織應積極使用微分段,以最小化環(huán)境中任何特定網絡分段危害的爆炸半徑。盡管云計算將在5G網絡的成功落地中發(fā)揮著關鍵作用,但任何新技術的應用都會帶來安全問題,云計算也不例外。美國國家安全局(NSA)和網絡安全與基礎設施安全局(CISA)近期發(fā)布了《5G網絡云基礎設施安全指...

    XBaron 評論0 收藏0
  • 《推動企業(yè)上云實施指南(2018-2020年)》解讀

    摘要:日前,工業(yè)和信息化部印發(fā)了推動企業(yè)上云實施指南年以下簡稱實施指南,指導和促進企業(yè)運用云計算加快數(shù)字化網絡化智能化轉型升級。穩(wěn)妥有序實施上云。為更好推進企業(yè)上云工作,實施指南提出了相關政策措施。8月10日,信息化和軟件服務業(yè)司發(fā)布了《推動企業(yè)上云實施指南(2018-2020年)》(以下簡稱實施指南)解讀。《實施指南》顯示,云計算是推動信息技術能力實現(xiàn)按需供給、提高信息化建設利用水平的新技術、新...

    DevTalking 評論0 收藏0
  • 概覽 AI在線服務 UAI Inference

    摘要:概覽概覽產品簡介基礎知識產品優(yōu)勢機制產品架構設計原理彈性擴縮容機制開發(fā)綜述服務請求方式開源鏡像開源案例學習視頻產品定價快速上手快速上手案例介紹環(huán)境準備在線服務代碼簡介 概覽產品簡介UAI-Inference基礎知識產品優(yōu)勢Hot-Standby機制產品架構設計原理彈性擴縮容機制開發(fā)綜述服務請求方式開源Docker鏡像開源案例學習視頻產品定價快速上手快速上手(TF-Mnist案例)MNIST ...

    ernest.wang 評論0 收藏1403
  • [譯]148個資源讓你成為CSS專家

    摘要:層疊樣式表二修訂版這是對作出的官方說明。速查表兩份表來自一份關于基礎特性,一份關于布局。核心第一篇一份來自的基礎參考指南簡寫速查表簡寫形式參考書使用層疊樣式表基礎指南,包含使用的好處介紹個方法快速寫成高質量的寫出高效的一些提示。 迄今為止,我已經收集了100多個精通CSS的資源,它們能讓你更好地掌握CSS技巧,使你的布局設計脫穎而出。 CSS3 資源 20個學習CSS3的有用資源 C...

    impig33 評論0 收藏0
  • 全解小程序猜數(shù)字游戲 04《 程序員變現(xiàn)指南之 微信&QQ 小程序 真的零基礎開發(fā)寶

    摘要:此時使用設置當前值中的猜測值為輸入框的內容值。接著判斷猜測之是否大于或者小于,因為這兩者是范圍之外不再進行判斷,所以最開始使用進行判斷不能小于不能大于以上代碼中表示調用微信小程序接口彈出提示,傳入的參數(shù)為提示內容。 ...

    不知名網友 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<