简介
Fastify 是一个基于 Express 和 Hapi 的 Node.js 框架。它的目标是提供更好的性能和更小的开销。MySQL 是一种流行的关系型数据库,长期以来一直是 Web 开发的重要组成部分。在本文中,我将向您介绍使用 Fastify 和 MySQL 构建 Node.js API 的过程。
快速入门
在开始本教程之前,您应该知道如何用 Node.js 和 npm 安装包。您还需要一个运行 MySQL 的本地或远程服务器。为了简便起见,本教程的示例将使用本地服务器。
首先,安装必要的包:
npm install fastify mysql
然后,让我们创建一个 index.js
文件并进行一些基本设置:
-- -------------------- ---- ------- ----- ------- - -------------------- ------- ---- -- ----- ----- - ---------------- ----- ---------- - ------------------------ ----- ------------ ----- ------- --------- ----------- --------- ------ -- ---------------- ----- ----- ------ -- - ------ - ------ ------- - -- -------------------- ----- -------- -- - -- ----- - ---------------------- --------------- - ------------------------ --------- -- ------------ --
我们使用 Fastify 创建了一个简单的路由并引入了 MySQL 组件。我们还创建了一个 MySQL 连接并将其存储在 connection
变量中。接下来,我们将在 '/users'
路由下添加用户列表端点:
fastify.get('/users', async (req, reply) => { connection.query('SELECT * FROM users', function (error, results, fields) { if (error) throw error; reply.send(results); }); })
这个路由将查询 MySQL 中的 users
表并返回所有用户的数据。现在,我们可以使用 Fastify 运行这个应用程序:
node index.js
在浏览器中打开 http://localhost:3000/users
,您应该能够看到返回的所有用户数据。
建议与最佳实践
使用 Fastify 插件
Fastify 具有可插拔设计,使您可以使用各种插件来增强应用程序的功能。Fastify 社区提供了许多构建 Web 应用程序所需的插件。以 fastify-cors 为例,它可以方便地启用跨域资源共享:
const fastify = require('fastify')({ logger: true }) const cors = require('fastify-cors') // ... fastify.register(cors, { origin: true, // 自动允许所有来源 methods: ['GET', 'PUT', 'POST', 'DELETE'], // 允许的方法 allowedHeaders: ['Content-Type'], // 允许的头部 })
使用 Promise
您可以使用 Promise 对象来更方便地管理异步代码。例如,使用 Promise 可以更好地处理查询结果。
-- -------------------- ---- ------- --------------------- ----- ----- ------ -- - --- ----------------- ------- -- - ------------------------ - ---- ------- -------- ------- -------- ------- - -- ------- ------------- ---------------- -- ----------------- -- - ------------------- ---------------- -- - ------------------------ ------ --------- ------ -- -- --
使用环境变量
为了更好地将应用程序从开发环境转移到生产环境,使用环境变量来存储敏感信息(如数据库凭据)是一个好习惯。使用 dotenv 可以很容易地从 .env
文件中读取环境变量:
require('dotenv').config() const connection = mysql.createConnection({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASS, database: process.env.DB_NAME })
结论
在本文中,我们介绍了如何使用 Fastify 和 MySQL 构建 Node.js API。我们创建了一个能够查询数据库并返回数据的端点。我们还提到了一些最佳实践,例如使用 Fastify 插件、Promise 和环境变量。希望这篇文章能够帮助您构建更好的 Web 应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/671c9bf09babaf620fb18d4f