新闻中心

后端JS怎么连接MySQL数据库_Node.js连接MySQL数据库与JS全栈整合教程

2025-11-03
浏览次数:
返回列表
Node.js连接MySQL需配置连接参数并使用mysql2模块,通过Express创建REST API实现前后端通信。1. 安装MySQL和Node.js依赖,初始化项目并安装mysql2;2. 创建db.js文件建立数据库连接;3. 在Express路由中查询数据并返回JSON;4. 前端用fetch请求接口,渲染数据;5. 使用cors中间件解决跨域;6. 实现注册功能:前端提交表单,后端插入数据到MySQL;7. 推荐使用环境变量存储密码,生产环境启用连接池提升性能。全流程为:前端请求→后端查库→返回数据→前端渲染。

后端js怎么连接mysql数据库_node.js连接mysql数据库与js全栈整合教程

Node.js连接MySQL数据库是全栈开发中的常见需求。前端J*aScript负责页面交互,后端Node.js通过连接MySQL实现数据持久化存储。下面详细介绍如何使用Node.js连接MySQL,并与前端JS整合,完成一个简单的全栈应用。

安装MySQL和Node.js依赖

确保本地已安装MySQL服务并启动。可以通过命令行或可视化工具(如MySQL Workbench)确认数据库正常运行。

在项目目录下初始化Node.js项目:

npm init -y

安装MySQL驱动包:

npm install mysql2

若需支持Promise语法(推荐),可同时安装并使用mysql2/promise模块。

Node.js连接MySQL并查询数据

创建一个db.js文件用于管理数据库连接:

const mysql = require('mysql2');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'your_password',
  database: 'test_db'
});

connection.connect((err) => {
  if (err) throw err;
  console.log('MySQL数据库连接成功');
});

module.exports = connection;

在路由文件中使用该连接查询数据,例如获取用户列表:

const express = require('express');
const connection = require('./db');
const app = express();

app.get('/users', (req, res) => {
  connection.query('SELECT * FROM users', (err, results) => {
    if (err) throw err;
    res.json(results);
  });
});

app.listen(3000, () => {
  console.log('服务器运行在 http://localhost:3000');
});

前端JS请求后端接口获取数据

在HTML页面中使用原生J*aScript或框架(如Vue、React)调用后端API:

OneStory OneStory

OneStory 是一款创新的AI故事生成助手,用AI快速生成连续性、一致性的角色和故事。

OneStory 319 查看详情 OneStory fetch('http://localhost:3000/users')
  .then(response => response.json())
  .then(data => {
    console.log(data); // 显示用户数据
    data.forEach(user => {
      document.body.innerHTML += `

${user.name}

`;
    });
  })
  .catch(err => console.error('请求失败:', err));

注意:需处理跨域问题。可在Express中使用cors中间件:

npm install cors
const cors = require('cors');
app.use(cors()); // 允许所有来源访问

整合前后端实现完整流程

一个典型的全栈流程包括:前端发送请求 → 后端接收并查询MySQL → 返回JSON数据 → 前端渲染页面。

示例场景:用户注册功能

  • 前端表单提交用户名和邮箱
  • Node.js接收POST请求,使用body-parser解析数据
  • 插入数据到MySQL的users
  • 返回成功状态,前端提示“注册成功”

插入语句示例:

app.post('/register', (req, res) => {
  const { name, email } = req.body;
  connection.execute(
    "INSERT INTO users (name, email) VALUES (?, ?)",
    [name, email],
    (err, result) => {
      if (err) throw err;
      res.send('注册成功');
    }
  );
});

基本上就这些。Node.js连接MySQL并不复杂,关键是配置好连接参数、处理异步操作、确保前后端通信顺畅。配合Express搭建REST API,再由前端J*aScript调用,即可实现动态网页应用。安全方面建议使用环境变量管理数据库密码,生产环境中启用连接池提升性能。

以上就是后端JS怎么连接MySQL数据库_Node.js连接MySQL数据库与JS全栈整合教程的详细内容,更多请关注其它相关文章!


# mysql  # 公司营销怎么推广的好做  # 汕头建设网站制作  # seo发包易语言  # 小红书营销推广分析论文  # 男子出资建设网站  # 遵义知名的网站优化链接  # 中文网  # 可在  # 可以通过  # 相关文章  # 推荐使用  # 连接池  # 注册成功  # 令牌  # js全栈教程  # vue  # react  # javascript  # word  # java  # html  # js  # 前端  # node.  # 后端  # 表单  # 百度seo收费情况  # SEO的音乐  # 网站推广品牌案例范文  # 浙江全网营销推广怎么做 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题  ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句  极速漫画官方主页网址 极速漫画漫画在线浏览官网链接  特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相  fishbowl官网免费版 fishbowl养鱼网站入口  qq浏览器打开空白页怎么办 qq浏览器启动后显示白屏的解决教程  Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程  在Go Martini框架中高效服务动态生成图像的实践指南  高德地图怎么看全景照片_高德地图全景照片浏览教程  AO3最新镜像入口 Archive of Our Own官方平台访问  MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId  谷歌邮箱注册显示错误Gmail服务器异常与延迟处理  包子漫画官方网站在线链接-包子漫画在线阅读平台主页地址  css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间  sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE  为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法  Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法  将HTML Canvas内容转换为可上传的图像文件(File对象)  2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享  J*a递归快速排序中静态变量导致数据累积问题的解决方案  mysql如何设置表访问权限_mysql表访问权限配置  CSS子选择器:如何区分并样式化嵌套列表的子层级  AI泡沫首次被“刺破”:GPU十年都无法存活!  Go语言中JSON数据解析与字段访问教程  中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】  QQ邮箱稳定登录入口_QQ邮箱官方网站网页版使用  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  Go调试环境为何无法启动_Go调试器启动失败原因与解决策略  在Go开发中优雅管理ListenAndServe进程:GoSublime集成方案  C++如何解决segmentation fault_C++段错误调试与原因分析  动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道  12306怎么选座位选到安静区_12306选座安静区域选择策略  荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】  qq邮箱发邮件给国外发不出去_QQ邮箱国际邮件发送失败原因与解决  vivo云服务网页版登录 怎么登录vivo云服务网页版  b站怎么取消点赞_b站点赞取消操作方法  腾讯视频怎么举报不良内容_腾讯视频内容举报流程与违规信息处理方法  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  Spyder启动失败:字体文件权限拒绝错误解决方案  AO3中文官网链接_AO3网页版稳定镜像站  J*aScriptWebpack优化_J*aScript构建工具实战  押井守高度称赞《辐射4》:玩了八年都停不下来!  163邮箱官方主页登录 直达网易邮箱登录核心页面  Lar*el Form Request中唯一性验证在更新操作中的正确实现  PHP表单数据传递:如何通过隐藏输入字段获取动态ID  Golang如何实现简单的Web表单_Golang表单提交与验证处理方法  163邮箱注册官网 免费申请163个人邮箱  微博网页版官方账号登录 微博网页版内容浏览使用指南  移动端XML文件怎么转换成Excel 手机和平板上的解决方案  必由学官方平台入口 必由学在线课堂登录地址 

搜索