Fastify 是一个轻量级、高效的 Node.js Web 框架,它专注于提供快速的 HTTP 服务。Fastify 的设计目标是最小化开销,提高性能和安全性,同时提供易于使用的 API。本文将介绍 Fastify 的基本使用方法和一些常用功能。
安装和使用
使用 npm 安装 Fastify:
npm install fastify
在 Node.js 中引入 Fastify:
const fastify = require('fastify')()
在上面的代码中,我们创建了一个 Fastify 实例。现在我们可以使用该实例来定义路由和处理程序。
定义路由
在 Fastify 中定义路由非常简单。我们可以使用 .get()
、.post()
、.put()
、.delete()
等方法来定义不同的 HTTP 动作。例如:
fastify.get('/', async (request, reply) => { return { hello: 'world' } })
上面的代码中,我们使用 .get()
方法定义了一个 HTTP GET 请求的路由,它将返回一个 JSON 对象 { hello: 'world' }
。
我们还可以使用 .route()
方法来定义多个 HTTP 动作的路由。例如:
fastify.route({ method: 'GET', url: '/', handler: async (request, reply) => { return { hello: 'world' } } })
上面的代码中,我们使用 .route()
方法定义了一个 HTTP GET 请求和一个 HTTP POST 请求的路由,它们都将返回一个 JSON 对象 { hello: 'world' }
。
处理请求
在 Fastify 中处理请求也非常简单。我们可以使用 request
和 reply
参数来访问请求和响应的属性和方法。例如:
fastify.get('/:name', async (request, reply) => { const name = request.params.name reply.type('application/json').code(200) return { message: `Hello, ${name}!` } })
上面的代码中,我们使用 request.params
访问 URL 参数,使用 reply.type()
设置响应类型,使用 reply.code()
设置响应状态码,最后返回一个 JSON 对象。
异步处理
在 Fastify 中处理请求时,我们通常使用异步函数。Fastify 支持使用 async
和 await
关键字来编写异步代码。例如:
// javascriptcn.com 代码示例 fastify.get('/:name', async (request, reply) => { const name = request.params.name const message = await getMessage(name) reply.type('application/json').code(200) return { message } }) async function getMessage(name) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(`Hello, ${name}!`) }, 1000) }) }
上面的代码中,我们使用 await
关键字等待 getMessage()
函数的结果,该函数返回一个 Promise,1 秒后解决。最后返回一个 JSON 对象。
静态文件
在 Fastify 中提供静态文件非常简单。我们可以使用 fastify-static
插件来提供静态文件服务。例如:
const fastifyStatic = require('fastify-static') fastify.register(fastifyStatic, { root: path.join(__dirname, 'public'), prefix: '/public/' })
上面的代码中,我们使用 fastify-static
插件注册了一个静态文件服务,它将把 public
目录下的文件映射到 /public/
URL 路径下。
数据库连接
在 Fastify 中连接数据库非常简单。我们可以使用 fastify-mongodb
插件来连接 MongoDB 数据库。例如:
// javascriptcn.com 代码示例 const fastifyMongoDB = require('fastify-mongodb') fastify.register(fastifyMongoDB, { url: 'mongodb://localhost:27017/mydb' }) fastify.get('/users', async (request, reply) => { const db = fastify.mongo.db const collection = db.collection('users') const users = await collection.find().toArray() return { users } })
上面的代码中,我们使用 fastify-mongodb
插件注册了一个 MongoDB 连接,它将把 mongo.db
属性注入到 Fastify 实例中,我们可以使用它来访问数据库。最后我们使用 collection.find().toArray()
方法查询所有用户并返回。
总结
本文介绍了 Fastify 的基本使用方法和一些常用功能,包括路由、请求处理、异步处理、静态文件和数据库连接。Fastify 是一个轻量级、高效的 Node.js Web 框架,它专注于提供快速的 HTTP 服务。如果你需要快速构建高性能的 Web 应用程序,不妨尝试一下 Fastify。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6561805fd2f5e1655db8dd38