Fastify 是一个快速且低开销的 Web 框架,它支持多种插件。其中,使用 MySQL 数据库插件可以让我们很方便地在 Fastify 中使用 MySQL 数据库。
准备工作
在使用 Fastify 和 MySQL 插件之前,我们需要先安装它们:
npm install fastify fastify-mysql --save
连接 MySQL 数据库
在使用 MySQL 插件之前,我们需要先连接到 MySQL 数据库。我们可以在 Fastify 实例中使用 register
方法来注册 MySQL 插件并连接到数据库。
const fastify = require('fastify')({ logger: true }) const mysql = require('fastify-mysql') fastify.register(mysql, { connectionString: 'mysql://user:password@localhost/dbname' })
在上面的代码中,我们使用 fastify.register
方法注册 MySQL 插件,并传递了一个连接字符串来连接到 MySQL 数据库。请注意,我们需要将 user
、password
和 dbname
替换为实际的值。
执行查询
一旦我们连接到了 MySQL 数据库,我们就可以使用 fastify.mysql
对象来执行查询。
fastify.get('/users', async (request, reply) => { const results = await fastify.mysql.query('SELECT * FROM users') reply.send(results) })
在上面的代码中,我们使用 fastify.get
方法创建了一个路由,当客户端访问 /users
路径时,我们将查询 users
表中的所有数据,并将结果发送回客户端。
使用参数化查询
我们应该尽可能使用参数化查询来避免 SQL 注入攻击。我们可以使用 fastify.mysql
对象的 execute
方法来执行参数化查询。
fastify.get('/users/:id', async (request, reply) => { const { id } = request.params const results = await fastify.mysql.execute('SELECT * FROM users WHERE id = ?', [id]) reply.send(results) })
在上面的代码中,我们使用 request.params
对象获取路由参数 id
的值,并将其传递给参数化查询。
关闭连接
当我们不再需要连接到 MySQL 数据库时,我们应该关闭连接以释放资源。我们可以在 Fastify 实例关闭时使用 fastify.mysql.close
方法来关闭连接。
fastify.addHook('onClose', async (instance, done) => { await instance.mysql.close() done() })
在上面的代码中,我们使用 fastify.addHook
方法添加了一个钩子函数,在实例关闭时调用 fastify.mysql.close
方法来关闭连接。
示例代码
完整的示例代码如下:
-- -------------------- ---- ------- ----- ------- - -------------------- ------- ---- -- ----- ----- - ------------------------ ----------------------- - ----------------- ---------------------------------------- -- --------------------- ----- --------- ------ -- - ----- ------- - ----- --------------------------- - ---- ------- ------------------- -- ------------------------- ----- --------- ------ -- - ----- - -- - - -------------- ----- ------- - ----- ----------------------------- - ---- ----- ----- -- - --- ----- ------------------- -- -------------------------- ----- ---------- ----- -- - ----- ---------------------- ------ -- -------------------- ----- -------- -- - -- ----- - ---------------------- --------------- - ------------------------ --------- -- ------------ --
结论
通过这篇文章,我们了解了如何在 Fastify 中使用 MySQL 数据库插件。我们学习了如何连接到 MySQL 数据库、执行查询、使用参数化查询和关闭连接。希望这篇文章对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6724d49e2e7021665e159c15