使用 Fastify 和 Mysql2 构建 MySQL 后端应用程序

前言

在前端开发中,我们经常需要和后端进行数据交互。而数据存储和查询方面,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