如何使用 Node.js 连接 mysql 数据库( 超详细!!!)

数据库部分

打开 navicat(其他数据库软件也可以)

点击连接 - 选择 MySql

在新建连接中输入连接名 以及密码,默认其他输入框是有值的。

连接建好后有几个数据库是自带的,还有的是我之前建的,这些不用管,现在我们需要创建自己的数据库。

右键新建数据库 -- 输入数据库名称 test

右键数据库名称 -- 新建表

在页面中随便写两个字段,类型会自动填充,然后保存为你想存的数据库表名,这里保存为 test。

数据库表建好了,随便填充一下数据

右键 - 点击打开表

输入张三,18 然后记得保存

node 部分

新建 dbconfig.js 用于配置数据库信息(以下代码在dbconfig.js中)

创建 MySQL 连接池,封装 sql 执行语句,最后把连接池以及封装好的函数导出。

JS 复制代码
const mysql = require('mysql')
//创建连接池
const pool = mysql.createPool({
  host: '127.0.0.1', //服务器地址
  user: 'root', //账号
  password: '123456', //密码
  database: 'test', //数据库名称
})

//封装sql执行函数
const executeQuery = (sql, values) => {
  return new Promise((resolve, reject) => {
    pool.getConnection((err, connection) => {
      if (err) {
        reject(err)
        return
      }

      connection.query(sql, values, (queryErr, results) => {
        connection.release()

        if (queryErr) {
          reject(queryErr)
        } else {
          resolve(results)
        }
      })
    })
  })
}

module.exports = {
  pool,
  executeQuery,
}

在 index.js 中引入数据库配置 (以下代码在index.js中)

写一个 get 接口测试数据库是否成功,再写一个 sql 语句搜索 test 表中所有数据,并执行 sql 语句,最后将得到的数据 send 出去。

JS 复制代码
const { pool, executeQuery } = require('./dbconfig')
const express = require('express')
const app = express()

app.get('/get', async (req, res) => {
  try {
    const sql = `SELECT * FROM test;`//sql语句 搜索test表所有数据
    const result = await executeQuery(sql)//执行sql语句

    res.send({
      result,
      code: 200,
    })
  } catch (error) {
    console.error('Error executing query:', error)
    res.status(500).send('Internal Server Error')
  }
})

app.listen('3000', () => {
  console.log(`node服务已启动 端口号是:3000`)
})

一定要初始化项目以及安装依赖!!!(按顺序执行)

JS 复制代码
npm init 

npm i express

npm i mysql

ctrl+j 打开终端,输入 node index 启动项目,如果你也得到下面这句话,说明你启动成功了。

测试

postman

打开 postman 进行本地测试,新建连接并输入链接,可以看到得到数据了。

网页测试

也可以正确拿到数据,那么到这里我们就大功告成了!

源码

GitHub链接: chenyajun-create/node-mysql (github.com)

所有源码已经同步提交GitHub,觉得对你有帮助的话,记得帮作者点下star⭐~非常感谢呢

相关推荐
用户818618028003 小时前
MongoDB文档模型设计——从建模到索引
前端
無名路人4 小时前
小程序点餐页吸顶滚动之分类按需加载,上划切换
前端·vue.js·微信小程序
竹林8184 小时前
把神经网络塞进一个浏览器标签页:端侧视觉 AI 的工程真相
前端·浏览器
乘风gg5 小时前
别跟风 AI 副业,工程师最该学的是 AI Coding
前端·ai编程·claude
Frag0ut5 小时前
深度解析:Chrome 自启动与后台常驻服务的作用、关闭方法及利弊权衡
前端·chrome
Amos_Web5 小时前
Rspack 源码解析(十五):Loader Runner 与 JS Loader 桥接
前端·rust·前端框架
YIAN5 小时前
从 SSE 流式到结构化输出:LangChain 三大 OutputParser 与 ToolCall 方案全实战
前端·langchain·node.js
FYKJ_20105 小时前
springboot雅集社区养老管理系统04456-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
FYKJ_20105 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
javascript·vue.js·spring boot·mysql·typescript·spark·express
YIAN5 小时前
从 SSE 流式原理到 LangChain 结构化输出:打字机效果与 JSON 解析全方案实战
前端·langchain