Fastify 是一款快速、低开销、易于扩展的 Node.js Web 框架。它的设计理念是尽可能地减少性能损耗,同时提供高度灵活性和可扩展性。在实际开发中,我们通常需要与数据库进行交互,来存储和查询数据。本文将介绍如何在 Fastify 中使用 SQL 数据库,并提供详细的示例代码。
安装依赖
首先,我们需要安装需要的依赖。在本文中,我们使用的是 MySQL 数据库。
npm install fastify fastify-mysql2 mysql2
配置数据库连接
在使用数据库之前,我们需要先进行数据库连接的配置。在 Fastify 中,我们可以使用 fastify-mysql2
插件来连接 MySQL 数据库。
const fastify = require('fastify')() const mysql = require('fastify-mysql2') fastify.register(mysql, { connectionString: 'mysql://user:password@localhost:3306/database' })
在上面的代码中,我们使用 fastify.register()
方法注册了 fastify-mysql2
插件,并提供了 MySQL 数据库的连接字符串。
执行 SQL 查询
在成功连接数据库后,我们可以使用 fastify.mysql
对象来执行 SQL 查询。下面是一个简单的示例,查询 users
表中的所有数据。
-- -------------------- ---- ------- --------------------- ----- ----- ---- -- - --- - ----- ------- - ----- --------------------------- - ---- ------- ----------------- - ----- ------- - -------------------- --------------- - --
在上面的代码中,我们使用 fastify.get()
方法来定义一个 GET 请求处理程序。在处理程序中,我们使用 fastify.mysql.query()
方法来执行 SQL 查询,并将结果发送给客户端。
使用参数化查询
在实际开发中,我们通常需要使用参数化查询来防止 SQL 注入攻击。在 Fastify 中,我们可以使用 fastify-mysql2
插件提供的 fastify.mysql.execute()
方法来执行参数化查询。下面是一个示例,查询 users
表中 id
字段等于 1
的数据。
-- -------------------- ---- ------- ------------------------- ----- ----- ---- -- - --- - ----- - -- - - ---------- ----- ------ - ----- ----------------------------- - ---- ----- ----- -- - --- ----- -------------- - ----- ------- - -------------------- --------------- - --
在上面的代码中,我们使用 fastify.get()
方法定义了一个带有参数的 GET 请求处理程序。在处理程序中,我们使用 fastify.mysql.execute()
方法来执行参数化查询,并将结果发送给客户端。
使用事务
在实际开发中,我们通常需要使用事务来保证数据的一致性。在 Fastify 中,我们可以使用 fastify.mysql.beginTransaction()
方法开启一个事务,并使用 fastify.mysql.commit()
方法提交事务或使用 fastify.mysql.rollback()
方法回滚事务。下面是一个示例,添加一个新用户,并将其添加到 users
表中。
-- -------------------- ---- ------- ---------------------- ----- ----- ---- -- - ----- - ----- ----- - - -------- ----- ---------- - ----- ----------------------------- ----- ----------------------------- --- - ----- -------- - ----- -------------------------- ---- ----- ------ ------ ------ --- ---- ------ ------- ----- ------ - ----- -------------------------- - ---- ----- ----- -- - --- ------------------ ----- ------------------- -------------- - ----- ------- - ----- --------------------- -------------------- --------------- - ------- - -------------------- - --
在上面的代码中,我们使用 fastify.post()
方法定义了一个 POST 请求处理程序。在处理程序中,我们使用 fastify.mysql.getConnection()
方法获取一个数据库连接,并使用 connection.beginTransaction()
方法开启一个事务。在事务中,我们使用 connection.execute()
方法执行 SQL 查询,并使用 connection.commit()
方法提交事务或使用 connection.rollback()
方法回滚事务。最后,我们使用 connection.release()
方法释放数据库连接。
总结
本文介绍了如何在 Fastify 中使用 SQL 数据库,并提供了详细的示例代码。在实际开发中,我们可以根据需要选择不同的数据库,并使用参数化查询和事务来保证数据的安全性和一致性。希望本文对您有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65e6b8b01886fbafa41dbf33