当前位置:首页 > 技术分析 > 正文内容

Node.js写接口连接MySQL数据库教程

ruisui882个月前 (03-14)技术分析9

在 Node.js 中连接 MySQL 数据库是一个常见的需求,特别是在构建后端服务时。以下是一个详细的教程,帮助你通过 Node.js 与 MySQL 进行连接并执行 SQL 查询操作。我们将使用 mysql 包和 express 框架来快速创建一个简单的 API 接口。

直达服务器选购网址:www.tsyvps.com

直达服务器选购网址:www.tsyvps.com

直达服务器选购网址:www.tsyvps.com

1. 安装依赖

首先,我们需要安装 MySQL 的 Node.js 客户端包 mysql 和 Web 框架 express。打开终端,进入项目目录并运行以下命令:

npm install mysql express

解释:

  • mysql:MySQL 数据库的客户端包,用于与 MySQL 数据库进行交互。
  • express:流行的 Web 框架,用于快速创建 API 接口和服务器。

2. 创建 Node.js 应用

在项目根目录下创建一个名为 app.js 的文件,用于编写我们的 Node.js 应用。

touch app.js

3. 导入模块

在 app.js 文件中导入 express 和 mysql 模块。

const express = require('express');
const mysql = require('mysql');
const app = express();

解释:

  • express:用于创建 HTTP 服务器和 API 接口。
  • mysql:用于建立与 MySQL 数据库的连接。

4. 创建 MySQL 连接池

在数据库访问时,使用连接池来管理 MySQL 连接非常重要,这可以提高性能并避免连接过多的问题。在 app.js 中添加以下代码来创建连接池:

const pool = mysql.createPool({
  host: 'localhost',
  user: 'your_mysql_username',
  password: 'your_mysql_password',
  database: 'your_database_name',
  connectionLimit: 10 // 设置连接池最大连接数
});

解释:

  • host:MySQL 数据库所在主机的地址,通常为 localhost。
  • user:连接 MySQL 使用的用户名。
  • password:该用户名的密码。
  • database:要连接的数据库名称。
  • connectionLimit:连接池中允许的最大连接数,避免过多连接导致性能下降。

5. 创建接口

接下来,创建一个简单的接口,用来查询 MySQL 数据库中的 users 表中的所有数据。例如,我们假设 users 表具有 id 和 name 字段,我们将编写一个接口,返回所有用户信息:

app.get('/users', (req, res) => {
  pool.query('SELECT * FROM users', (err, rows) => {
    if (err) {
      console.error('Error querying database:', err);
      res.status(500).send('Internal Server Error');
    } else {
      res.json(rows);  // 返回查询到的用户数据
    }
  });
});

解释:

  • app.get('/users', ...):设置一个 GET 请求的路由,监听访问 /users 的请求。
  • pool.query(...):使用创建的连接池来执行 SQL 查询,这里是查询 users 表中的所有数据。
  • res.json(rows):将查询结果以 JSON 格式返回给客户端。
  • res.status(500).send(...):如果查询出错,返回 HTTP 状态码 500 和错误信息。

6. 启动服务器

现在,我们设置服务器监听一个端口(例如 3000),以便用户可以访问我们的 API。把以下代码添加到 app.js 文件底部:

const port = 3000;
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

解释:

  • app.listen(port, ...):启动 Express 服务器并监听指定的端口。
  • console.log(...):当服务器成功启动时,打印一条信息到控制台。

7. 运行应用

在终端中,进入项目目录,并运行以下命令启动应用:

node app.js

解释:

  • node app.js:执行 Node.js 应用,启动 Web 服务器并开始监听请求。

8. 测试接口

打开浏览器或使用 Postman 等工具访问
http://localhost:3000/users。如果数据库中有用户数据,您将看到类似以下的 JSON 响应:

[
  {
    "id": 1,
    "name": "John Doe"
  },
  {
    "id": 2,
    "name": "Jane Smith"
  }
]

解释:

  • 如果查询成功,返回一个包含所有用户信息的 JSON 数组。
  • 如果查询失败,则返回状态码 500 和错误信息。

总结

通过以上步骤,您已经成功地配置了一个使用 Node.js 和 MySQL 的简单 API 接口。总结步骤如下:

  1. 安装依赖:通过 npm install 安装 mysql 和 express。
  2. 创建应用:创建 app.js 文件并配置数据库连接。
  3. 创建连接池:使用 mysql.createPool 来创建数据库连接池,优化数据库访问性能。
  4. 创建接口:使用 Express 创建 API 路由,执行 SQL 查询并返回结果。
  5. 启动服务器:通过 app.listen 启动服务器,并监听端口。
  6. 测试接口:通过访问 http://localhost:3000/users 来测试接口是否正常工作。

这种方法适用于小型到中型的应用,对于大规模应用,可能需要对数据库连接池、查询优化等方面进行进一步的优化。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2762.html

分享给朋友:

“Node.js写接口连接MySQL数据库教程” 的相关文章

Win+Ubuntu缝合怪:第三方开发者推出“Wubuntu”Linux发行版

IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据介绍,这款 Wubuntu 发行版旨在为习惯使用 Windows 11 的用户打造...

有效地简化导航-Part 1:信息架构

「四步走」——理想的导航系统要做一个可用的导航系统,网页设计师必须按顺序回答以下4个问题:1. 如何组织内容?2. 如何解释导航的选项?3. 哪种导航菜单最适合容纳这些选项?4. 如何设计导航菜单?前两个问题关注构建和便签内容,通常称为信息架构。信息架构师通常用网站地图(site map diagr...

佳能 EOS R8 深度评测

佳能 EOS R8 的定位是入门级全画幅无反光镜可换镜头相机。尽管在产品阵容中处于这一位置,R8 仍然是一个强大的相机,配备了先进的 R6 II 同款成像传感器、快速处理器和令人难以置信的自动对焦系统,体积小、重量轻、价格低。这款相机是发烧友、旅行者、家庭以及任何想要全画幅传感器相机的人的绝佳选择。...

JavaScript数组操作:掌握常用方法,提升开发效率

JavaScript数组操作:从增删改查到高级应用本文深入解析JavaScript中常用的数组方法,包括push、unshift、pop、shift、map、filter、reverse、at 和 slice。通过详细的例子和应用场景,帮助开发者快速掌握这些方法,提升代码效率和可读性。开篇点题作为J...

三、Uni-app + vue3 页面如何跳转及传参?

Vue 项目往往需要使用 vue-router 插件,刚开始入门 Uni-app + Vue3 项目的同学,会不会想着路由使用 vue-router V4 版本不就可以了吗?不怕大家笑话,我就是这样想的,毕竟我是第一次使用 Uni-app ,由于孕期记性贼差,所以我决定写成笔记,加深记忆。uni-a...

vue开发微信小程序 - 登录组件

移动端登录功能抽象为通用组件,满足:不同移动端应用中一键登录功能复用支持多种登录:微信登录、H5、QQ登录登录组件使用//引用登录组件 import login from "../components/user/login.vue" export default { compone...