IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Node.js查询MySQL并返回结果集给客户端 -> 正文阅读

[大数据]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 表中所有数据,并响应给客户端
function showMsg(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 = new XMLHttpRequest();
            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数据库并且操作数据库,最终将结果集返回给客户端的步骤,具有一定的模块化思想,如有错误或不足,望斧正。初学者一枚,若给出好的建议,我全盘接收。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:41:07  更:2022-10-17 12:44:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 8:25:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码