前言
在前端开发中,我们经常需要和后端进行数据交互。而数据存储和查询方面,MySQL 是较为常用和成熟的解决方案之一。在本文中,我们将介绍如何使用 Fastify 和 Mysql2 构建 MySQL 后端应用程序。
Fastify 简介
Fastify 是一个快速且低开销的 Web 框架,适用于构建高性能的 API。它构建于 Node.js 的核心 HTTP 模块之上,代码简洁、易于扩展、支持插件化以及快速应对请求。与 Express 和 Koa 等框架相比,Fastify 在性能方面有一定的提升。
Mysql2 简介
Mysql2 是一个基于 Node.js 的 MySQL 数据库驱动程序,与 MySQL 的通信协议兼容。Mysql2 性能表现较好,支持流式查询和批量插入等特性。
构建 Fastify 应用程序
我们首先需要安装和初始化一个 Fastify 应用程序,并添加相应的插件,以支持数据库连接、请求解析等功能。
安装 Fastify
执行以下命令,安装 Fastify:
npm install fastify --save
初始化 Fastify
在项目中,创建一个名为 index.js
的文件,初始化 Fastify 应用程序如下:
const fastify = require('fastify')({ logger: true }); fastify.listen(3000, (err, address) => { if (err) { fastify.log.error(err); process.exit(1); } console.log(`Server listening on ${address}`); });
在上面代码中,我们初始化了 Fastify 应用程序,并指定了监听端口为 3000。
添加插件
Fastify 是一个插件化的框架,根据需要搭配插件构建 API。我们需要添加相应的插件,以支持与 Mysql2 进行交互。
fastify-mysql2 插件
fastify-mysql2
是一个 Fastify 的插件,用于添加 Mysql2 的支持。执行以下命令安装该插件:
npm install fastify-mysql2 --save
在 index.js
文件中,添加 fastify-mysql2
插件:
const fastify = require('fastify')({ logger: true }); const mysql = require('fastify-mysql2'); fastify.register(mysql, { connectionString: 'mysql://user:password@localhost:3306/database_name' }); fastify.listen(3000, (err, address) => { if (err) { fastify.log.error(err); process.exit(1); } console.log(`Server listening on ${address}`); });
在上面的代码中,我们首先使用 require
引入 fastify-mysql2
插件。然后,调用 fastify.register
方法注册该插件并指定数据库连接字符串。
fastify-formbody 插件
fastify-formbody
插件是一个 Fastify 的插件,用于将请求体解析为表单格式。我们使用该插件解析 POST 请求中的数据。执行以下命令安装该插件:
npm install fastify-formbody --save
在 index.js
文件中,添加 fastify-formbody
插件:
const fastify = require('fastify')({ logger: true }); const mysql = require('fastify-mysql2'); const formbody = require('fastify-formbody'); fastify.register(mysql, { connectionString: 'mysql://user:password@localhost:3306/database_name' }); fastify.register(formbody); fastify.listen(3000, (err, address) => { if (err) { fastify.log.error(err); process.exit(1); } console.log(`Server listening on ${address}`); });
在上面的代码中,我们首先使用 require
引入 fastify-formbody
插件。然后,调用 fastify.register
方法注册该插件。
构建 Mysql2 应用程序
我们需要安装和初始化 Mysql2 应用程序,以支持与数据库进行交互。在 index.js
文件中,添加以下代码:
const fastify = require('fastify')({ logger: true }); const mysql = require('fastify-mysql2'); const formbody = require('fastify-formbody'); fastify.register(mysql, { connectionString: 'mysql://user:password@localhost:3306/database_name' }); fastify.register(formbody); fastify.get('/users', async (req, reply) => { const data = await fastify.mysql.query('SELECT * FROM users'); reply.send(data); }); fastify.post('/users', async (req, reply) => { const { name, age } = req.body; await fastify.mysql.query(`INSERT INTO users(name, age) VALUES('${name}', ${age})`); reply.send('ok'); }); fastify.listen(3000, (err, address) => { if (err) { fastify.log.error(err); process.exit(1); } console.log(`Server listening on ${address}`); });
在上面的代码中,我们使用 fastify-mysql2
添加数据库支持,调用 fastify.get
方法,查询数据库中的所有用户信息。调用 fastify.post
方法,从请求体中获取数据,插入到数据库中。
总结
本文介绍了如何使用 Fastify 和 Mysql2 构建 MySQL 后端应用程序。我们使用 fastify-mysql2
插件和 Mysql2 库与数据库进行交互,使用 fastify-formbody
插件解析请求体中的数据。同时,我们提供了一些示例代码供读者参考,帮助读者掌握如何在项目中应用这两个库。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65ab297aadd4f0e0ff4c63b5