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

 更新时间:2022年12月27日 15:40:21   作者:JV_32  
nodejs最大的优势也是大家用着最为难以理解的一点,就是它的异步功能,它几乎所有的io操作都是异步的,这也就导致很多人不理解也用不习惯,下面这篇文章主要给大家介绍了关于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数据库并且操作数据库,最终将结果集返回给客户端的步骤,具有一定的模块化思想,如有错误或不足,望斧正。

到此这篇关于Node.js查询MySQL并返回结果集给客户端的文章就介绍到这了,更多相关Node.js查询MySQL返回结果集内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • windows系统下安装yarn的详细教程

    windows系统下安装yarn的详细教程

    yarn是一个新的JS包管理工具,它的出现是为了弥补npm的一些缺陷,下面这篇文章主要给大家介绍了关于windows系统下安装yarn的详细教程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Node.js学习教程之Module模块

    Node.js学习教程之Module模块

    这篇文章主要给大家介绍了关于Node.js学习教程之Module模块的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Node.js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • nodejs实现发送邮箱验证码功能

    nodejs实现发送邮箱验证码功能

    这篇文章主要为大家详细介绍了nodejs实现发送邮箱验证码功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Windows环境下npm install 报错: operation not permitted, rename的解决方法

    Windows环境下npm install 报错: operation not permitted, rename的解决

    这篇文章主要介绍了Windows环境下npm install 报错: operation not permitted, rename的解决方法,文中对解决的方法介绍的很详细,有需要的朋友们可以参考借鉴。
    2016-09-09
  • Node.js插件安装图文教程

    Node.js插件安装图文教程

    Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。本文给大家介绍Node.js插件安装的教程,非常实用,特此分享给大家,需要的朋友一起学习吧
    2016-05-05
  • 深入理解 Koa 框架中间件原理

    深入理解 Koa 框架中间件原理

    koa是目前node里最流行的web框架。这篇文章主要介绍了理解 Koa 框架中间件原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Node.js高级编程使用RPC通信示例详解

    Node.js高级编程使用RPC通信示例详解

    这篇文章主要为大家介绍了Node.js高级编程使用RPC通信示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 基于Express实现递归遍历文件和CRUD操作

    基于Express实现递归遍历文件和CRUD操作

    在现代的 Web 应用开发中,文件管理是一个常见而重要的需求,所以本文就来讲讲如何利用 Express 框架,在递归遍历文件之后实现强大的 CRUD 操作,构建一个功能完善的文件管理系统,感兴趣的可以了解一下
    2023-06-06
  • Node.js中用D3.js的方法示例

    Node.js中用D3.js的方法示例

    这篇文章主要给大家介绍了在Node.js中用D3.js的方法,文中分别介绍了如何安装模块和一小段简单的示例代码,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • 如何构建一个 NodeJS 影院微服务并使用 Docker 部署

    如何构建一个 NodeJS 影院微服务并使用 Docker 部署

    微服务是一个单独的自包含单元,与其他许多单元一起构成一个大型应用程序,这篇文章主要介绍了如何构建一个NodeJS影院微服务并使用Docker部署,在这个系列中,将构建一个 NodeJS 微服务,并使用 Docker Swarm 集群进行部署,需要的朋友可以参考下
    2023-08-08

最新评论