0


Node.js查询MySQL并返回结果集给客户端

文章目录


前言

  mysql模块 + Express框架 + 原始Ajax请求,实现Node对MySQL数据库表的查询,并将结果集返回给客户端


一、mysql模块

  (1)Node想要操作MySQL数据库,需要安装第三方mysql模块:npm i mysql
  (2)通过mysql的 createPool 方法连接到MySQL数据库

connDB.js

// 1.导入mysql模块const mysql =require('mysql');// 2.建立连接const db = mysql.createPool({host:'127.0.0.1',// 数据库 IP 地址user:'root',// 账号password:'******',// 密码database:'my_db_01'// 指定要操作哪个数据库})

  (3)导出获取到连接的对象

module.exports = db;

二、操作MySQL数据库

1.配置Express路由模块

  编写Express路由模块,处理客户端的GET请求

routerModule.js

const express =require('express');const db =require('./connDB');// 导入获取到MySQL连接的对象const router = express.Router();// express.Router() 创建路由对象// 查询数据库 users 表中所有数据,并响应给客户端functionshowMsg(req, res){const sqlStr ='select * from users';// 查询SQL语句
    db.query(sqlStr,(err, results)=>{if(err)return err.message;
        res.send(results);// 将查询结果响应给客户端})}
router.get('/showInfo', showMsg);// 在路由对象上配置具体路由,处理 GET 请求

module.exports = router;// 导出路由模块

注:若使用res.end()响应数据,需要将数据转化为Json字符串**res.end(JSON.stringify(results))**, 如果方法传入一个对象,会发生错误。一般建议使用 res.send()方法即可,这样就不需要关心响应数据的格式,因为 Express 内部对数据进行了处理

2.创建Web服务器

  通过Express创建简单的Web服务器,为客户端提供请求的接口

server.js

const express =require('express');const router =require('./routerModule');// 导入路由模块const cors =require('cors');// 导入cors模块,解决跨域const app =express();    
app.use(cors());// 配置 cors 中间件,解决接口跨域问题
app.use(router);// 加载路由中间件

app.listen(80,()=>{
    console.log('服务器启动成功!');})

注:浏览器的同源安全策略会阻止网页“跨域”获取资源,CORS由一系列HTTP响应头组成,这些HTTP响应头决定浏览器是否阻止前端JS代码跨域获取资源,所以我们需要在接口服务器配置CORS,就可以阻止浏览器端的跨域访问限制。

3.请求数据

  在客户端通过基础的Ajax请求四部曲,请求数据

<body><button>点我获取数据库数据</button><script>const btn = document.querySelector('button');
        btn.onclick=function(){const xhr =newXMLHttpRequest();
            xhr.open('GET','http://127.0.0.1/showInfo');
            xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            xhr.send();
            xhr.onreadystatechange=()=>{if(xhr.readyState ===4){if(xhr.status >=200&& xhr.status <=300){
                        console.log(JSON.parse(xhr.response));// 通过JSON.parse将数据转化为JavaScript对象}}}}</script></body>

请求结果:
在这里插入图片描述


总结

  本章阐述了简单使用Node连接MySQL数据库并且操作数据库,最终将结果集返回给客户端的步骤,具有一定的模块化思想,如有错误或不足,望斧正。初学者一枚,若给出好的建议,我全盘接收。

标签: node.js 前端 mysql

本文转载自: https://blog.csdn.net/m0_53375764/article/details/127353535
版权归原作者 JV_32 所有, 如有侵权,请联系我们删除。

“Node.js查询MySQL并返回结果集给客户端”的评论:

还没有评论