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

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

ruisui883个月前 (03-14)技术分析16

在 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数据库教程” 的相关文章

GitLab 14.6发布,优化Geo高可用,安全更新等

昨天,GitLab官方按照管理发布了有一个月度版本GitLab 14.6的发布,这也是本年度收官版本。14.6中在安全合规性方面,在Geo方面以及MD代码块一键复制等方便做了优化,另外还在UI图标方面发布了一套全新的图标。详细情况请和虫虫一起学习。GitLab 14.6主要改进使用 Geo 实现无缝...

身体越柔软越好?刻苦拉伸可能反而不健康 | 果断练

坐下伸直膝盖,双手用力向前伸,再用力……比昨天前进了一厘米,又进步了! 这么努力地拉伸,每个人都有自己的目标,也许是身体健康、线条柔美、放松肌肉、体测满分,也可能为了随时劈个叉,享受一片惊呼。 不过,身体柔软,可以享受到灵活的福利,也可能付出不稳定的代价,并不是越刻苦拉伸越好。太硬或者太软,都不安全...

Solid State Logic 发布低保真数字失真插件 Digicrush

Solid State Logic 宣布推出低保真数字失真插件 Digicrush ,他们最新的创意工具具有经典数字失真的粗糙、低保真特性,完美模拟早期数字音频的衰减和伪影。Digicrush 充满怀旧气息,深受经典数字采样器和效果器的影响,具有内置抖动、可调比特深度和采样率降低功能,是为音轨添加复...

全新斯柯达柯珞克Karoq深度评测:大众替代品

“斯柯达柯珞克是一款出色的全能家庭 SUV,具有许多有用的功能”价格36,605 英镑- 49,190 英镑优点方便的 VarioFlex 后排座椅非常适合家庭入住驾驶乐趣缺点保修期短保守的内饰性格比Yeti少结论——斯柯达柯珞克是一辆好车吗?斯柯达柯珞克是在辉煌的七座 斯柯达柯迪亚克之后推出的,因...

Vue Router 4 路由操作 - 路由导航

路由导航分为 声明式导航 和 编程式导航。通过 <router-link to="..."> 标签跳转的方式为声明式导航。通过 路由实例对象(router.push(...))跳转的为编程式导航。导航到不同的位置想要导航到不同的URL,使用 router.push 方法。...

深入理解vue-router原理

说到vue-router就表明他只适合于vue和vue是强绑定的关系;不适合其他框架;现在我们模仿实现一个VueRouter;1.要使页面刷新;借助vue本身的响应式原理;import Home from "./views/Home"; import About from "...