>首页> IT >

环球关注:分享一个Nodejs web框架:Fastify

时间:2022-08-04 21:58:29       来源:转载
本篇文章给大家分享一个Nodejs web框架:Fastify,简单介绍一下Fastify支持的特性、Fastify支持的插件以及Fastify的使用方法,希望对大家有所帮助!

前端的web框架,大部分都是建立在node基础上的。fastify 也不例外。


(资料图片)

前端web框架性能比对

Benchmarks

Machine:EX41S-SSD, Intel Core i7, 4Ghz, 64GB RAM, 4C/8T, SSD.

Method:: autocannon -c 100 -d 40 -p 10 localhost:3000* 2, taking the second average

FrameworkVersionRouter?Requests/sec
Express4.17.314,200
hapi20.2.142,284
Restify8.6.150,363
Koa2.13.054,272
Fastify4.0.077,193
-
http.Server16.14.274,513

Fastify支持的特性

高性能:请见上表.Extensible:通过 hooks, plugins and decorators 来实现扩展性.Schema based:不强制使用 JSON Schema 验证你的路由配置,及时配置了,编译也是很快的.Logging:使用Pino来记录日志,并把损耗降低。Developer friendly:对开发者友好,而且对性能、安全性也有考虑、设计.TypeScript ready:支持 TypeScript

Fastify支持的 plugins

那么,如何使用呢?

初始化

创建工程

npm install --global fastify-clifastify generate myproject

初始化工程

npm init -y fastify

安装依赖

#npm npm i fastify#yarn yarn add fastify

hello-world

同步返回

// ESMimport Fastify from "fastify"//const fastify = Fastify({  //logger: true//})// CommonJsconst fastify = require("fastify")({  logger: true})// Declare a routefastify.get("/", (request, reply) => {  reply.send({ hello: "world" })})// Run the server!fastify.listen({ port: 3000 }, (err, address) => {  if (err) throw err  // Server is now listening on ${address}})

异步返回

// ESMimport Fastify from "fastify"const fastify = Fastify({  logger: true})// CommonJs//const fastify = require("fastify")({  //logger: true//})fastify.get("/", async (request, reply) => {  reply.type("application/json").code(200)  return { hello: "world" }})fastify.listen({ port: 3000 }, (err, address) => {  if (err) throw err  // Server is now listening on ${address}})

plugin如何使用

const fastifySession = require("fastify-session")fastify.register(fastifySession, {    cookieName: "sessionId",    secret: "a secret with minimum length of 32 characters",    cookie: { secure: false },    expires: 1800000})

更多使用

Example ListGetting StartedGuidesServerRoutesEncapsulationLoggingMiddlewareHooksDecoratorsValidation and SerializationFluent SchemaLifecycleReplyRequestErrorsContent Type ParserPluginsTestingBenchmarkingHow to write a good pluginPlugins GuideHTTP2Long Term SupportTypeScript and types supportServerlessRecommendations

相关link

#json schema

#pino

更多node相关知识,请访问:nodejs 教程!

以上就是分享一个Nodejs web框架:Fastify的详细内容,更多请关注php中文网其它相关文章!

关键词: 相关文章 简单介绍 使用方法