前端的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
Framework | Version | Router? | Requests/sec |
---|---|---|---|
Express | 4.17.3 | ✓ | 14,200 |
hapi | 20.2.1 | ✓ | 42,284 |
Restify | 8.6.1 | ✓ | 50,363 |
Koa | 2.13.0 | ✗ | 54,272 |
Fastify | 4.0.0 | ✓ | 77,193 |
- | |||
http.Server | 16.14.2 | ✗ | 74,513 |
Fastify支持的特性
高性能:请见上表.Extensible:通过 hooks, plugins and decorators 来实现扩展性.Schema based:不强制使用 JSON Schema 验证你的路由配置,及时配置了,编译也是很快的.Logging:使用Pino来记录日志,并把损耗降低。Developer friendly:对开发者友好,而且对性能、安全性也有考虑、设计.TypeScript ready:支持 TypeScriptFastify支持的 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 Started
Guides
Server
RoutesEncapsulation
Logging
Middleware
HooksDecorators
Validation and Serialization
Fluent Schema
LifecycleReply
RequestErrors
Content Type Parser
PluginsTesting
BenchmarkingHow to write a good plugin
Plugins Guide
HTTP2
Long Term Support
TypeScript and types support
ServerlessRecommendations
相关link
#json schema
#pino
更多node相关知识,请访问:nodejs 教程!
以上就是分享一个Nodejs web框架:Fastify的详细内容,更多请关注php中文网其它相关文章!