我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Node.js与MySQL交互操作及其注意事项

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Node.js与MySQL交互操作及其注意事项

node.js作为服务端的js运行环境已经出现了有几年了,最近我有个朋友也在做这方面的开发,但是也是刚刚接触,遇到了很多坑。前几天他们在操作数据库的时候出现了点问题,后来我们一起看了看,其实都是node本身机制的一些问题,这里总结一下给新手做借鉴。

我朋友的数据库采用的是MySQL。(至于为什么不用mongoDB,这个是公司上层选型的结果,因为很多新手朋友似乎总是觉的node.js就是应该和mongoDB联系在一起,所以这里简单说下)。我后来写了一个简单的小例子,整个小例子使用了express框架,node_modules里面已经下载好了express和ejs模板。先来看下目录:

查看图片

server.js =》 node.js的服务器启动文件

db.js =》 数据库操作文件

views =》 存放模板文件,也就是所有的页面存放的地方

public =》 存放所有静态资源的地方,比如css js images之类的

首先介绍一下node.js连接MySQL的步骤,第一步,需要安装一个叫做MySQL的npm包,这个包是官方提供的,稳定性是可以保证的,当然,也还有其他的npm包,这里我们只使用mysql包。安装的方法很简单了,输入指令 npm install mysql --save,等待下载完成.

查看图片

看到这个样子,那就是安装成功了。

然后我们打开db.js文件,在里面写入数据库中操作必须的一些代码,看下图:

查看图片

代码很少,意思也很明显,第一步需要引入以mysql包,然后我们创建一个空对象,并且给他赋值一个叫query的方法,这个方法接受两个参数,第一个参数是你查询数据时候的sql语句,第二个参数是获取查询结果的回调函数。

再看函数内部,第一块代码是用来设置操作mysql的配置的:

查看图片

host表示mysql安装的地址,因为我是本地的数据库,所以直接使用localhost

user表示mysql的用户名

password表示mysql的密码

database表示你要选择操作的具体的库的名字

port表示端口,可不填,默认就是3306

mysql.createConnection的返回值connection是我们接下来操作mysql的一个具体的对象,所有的操作方法都是基于他的。

调用connection的connect方法判断连接是否成功,如果失败,则把错误信息打印出来,并且停止运行。

查看图片

调用connection的query方法来直接向数据库发送sql语句,并且把用回调函数返回结果,其中回调函数中有三个参数,第一参数是错误对象,如果操作失败,则会停止并打印错误信息,第二参数是具体的返回的结果,正常情况下是一个数组,里面包含很多json,第三个参数也是一个数组,里面包含着最每个数据的解释,比如当前数据属于哪个库,那张表等等。我们使用最多的自然是第二个参数了

查看图片

当数据库操作结束以后关闭连接

查看图片

整个过程很简单,只是其中有两个问题,第一个是数据库连接丢失的问题,不知道有没有人碰到过,第一次访问首页的时候,连接数据库正常,第二次访问首页,数据库连接不上了,会报错说连接丢失。这个原因是我们每操作完一次数据库就关闭了数据库连接,再次访问的时候就找不到连接了,但是连接又不能不关闭,有人可能觉得奇怪,每次访问首页时候都会访问db.js文件,不是每次都会有一个新连接产生吗?是的,只是我最开始的时候生成连接的那段代码并没有放到db.query的函数中,而是放在外面,如下图:

查看图片

这样就导致连接只生成一次,关闭了以后,第二采访得不到连接。把它放在函数里面以后,使用exports对外暴露接口。每次访问首页,都会重新走一遍创建连接的过程,每次都能拿到一个新的连接,这样访问就没有问题了。其实项目中可以直接使用连接池。省去了很多麻烦。

第二个问题是我们在server.js中引入了db.js

查看图片

此时大家可能看到了,mysql.query有两个参数,第一个是sql,第二个是回调函数,回调函数有一个result的参数,其实他就是数据库查询出来的结果。有人会说为什么不直接在db.js中使用return,把查询结果返回,搞什么回调啊!

查看图片

其实这里就是node.js的异步造成的一些问题了,如果我们把server.js中的代码改成下图

查看图片

因为我们看到了mysql包的query方法是异步操作,这就导致下面的res.render()方法不会等待他把结果查询出来以后再执行,往往是结果还没出来,就已经开始渲染页面,但是数据又没有得到,所以就会报错了。因此只好传送了一个回调函数进去,在mysql的query方法结束以后,把结果通过参数传入到我们自己写的回调函数中,这样我们就能在回调函数里得到结果了。然后再执行渲染。当然处理这个问题还可以引入第三方包 async来解决异步问题,具体看个人了。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Node.js与MySQL交互操作及其注意事项

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node.js与MySQL交互操作及其注意事项

node.js作为服务端的js运行环境已经出现了有几年了,最近我有个朋友也在做这方面的开发,但是也是刚刚接触,遇到了很多坑。前几天他们在操作数据库的时候出现了点问题,后来我们一起看了看,其实都是node本身机制的一些问题,这里总结一下给新手
2022-06-04

MySQL 重命名表的操作方法及注意事项

目录 1.重命名表方法 2.注意事项总结: 1.重命名表方法 使用 RENAME TABLE 语句或 ALTER TABLE 语句都可以对表进行重命名,基本语法如下:# RENAME TABLE 语法: RENAME TABLE
2022-05-16

Golang文件删除操作的实施与注意事项

Golang 是一种开源的编程语言,由Google研发,旨在提高开发人员的生产力。在Golang中,删除文件是一项常见的操作,但需要注意一些细节以确保操作的安全和正确性。本文将介绍Golang中删除文件的实现方法,并给出一些注意事项和具体的
Golang文件删除操作的实施与注意事项
2024-02-24

MySQL与其他数据库的集成与互操作项目经验总结

MySQL与其他数据库的集成与互操作项目经验总结一、引言MySQL是一种常用的关系型数据库管理系统,广泛应用于各行各业。但在实际应用中,有时我们需要与其他数据库进行集成和互操作,以满足业务需求和数据管理的要求。本文将总结一些MySQL与其他
MySQL与其他数据库的集成与互操作项目经验总结
2023-11-02

阿里云备案换服务器如何操作及注意事项

阿里云备案换服务器是一个涉及到服务器管理的重要步骤。在使用阿里云服务器的过程中,如果需要更换服务器,就需要进行备案换服务器的操作。这篇文章将会详细介绍如何进行阿里云备案换服务器,以及需要注意的事项。正文:步骤一:确定更换服务器在进行阿里云备案换服务器之前,首先需要确定需要更换的服务器类型、配置、带宽等信息。可以根
阿里云备案换服务器如何操作及注意事项
2023-11-21

MySQL中.ibd文件的作用详解及相关注意事项

MySQL中.ibd文件的作用详解及相关注意事项MySQL是一种流行的关系型数据库管理系统,数据库中的数据存储在不同的文件中。其中,.ibd文件是InnoDB存储引擎中的数据文件,用于存储表中的数据和索引。本文将对MySQL中.ibd文件
MySQL中.ibd文件的作用详解及相关注意事项
2024-03-15

阿里云ECS实例转出至其他账户操作指南和注意事项

阿里云ECS(ElasticCloudServer)是阿里云提供的一种计算服务,用户可以按需使用弹性计算资源,实现计算任务的快速部署和扩展。在使用过程中,可能需要将ECS实例转出至其他账户。本文将详细说明如何进行操作,并列出需要注意的事项。正文:步骤一:登录阿里云管理控制台在电脑上登录阿里云管理控制台,选择“计算
阿里云ECS实例转出至其他账户操作指南和注意事项
2023-12-12

阿里云清空空间数据库的操作步骤及注意事项

阿里云空间数据库是阿里云提供的一个存储数据的云服务,用户可以将本地的数据同步到阿里云空间数据库中,方便用户在任何地方进行数据访问。然而,有时用户可能会需要清空空间数据库中的数据,以释放空间或者进行其他操作。本篇文章将详细介绍如何在阿里云中清空空间数据库的操作步骤以及需要注意的事项。正文:清空空间数据库的操作步骤如
阿里云清空空间数据库的操作步骤及注意事项
2023-12-15

阿里云服务器数据库重启操作流程与注意事项

随着云计算的飞速发展,越来越多的企业和个人开始使用阿里云服务器。在使用过程中,数据库的稳定性是非常重要的。而重启数据库是维护数据库稳定性的常见操作。本文将详细介绍如何在阿里云服务器上重启数据库,以及注意事项。操作流程:登录阿里云服务器:首先,你需要登录你的阿里云服务器。在控制台中找到你的服务器,点击进入。进入数据
阿里云服务器数据库重启操作流程与注意事项
2023-11-08

阿里云服务器临时扩容的操作流程与注意事项

阿里云服务器临时扩容是一项重要而又常用的服务,可以快速满足服务器临时资源需求,以应对业务高峰期,避免业务中断。本文将详细介绍阿里云服务器临时扩容的操作流程及注意事项,帮助用户更好地利用阿里云服务器。正文:一、什么是阿里云服务器临时扩容阿里云服务器临时扩容是指用户在不需要长期使用额外资源的情况下,可以临时提升服务器
阿里云服务器临时扩容的操作流程与注意事项
2023-12-14

关闭阿里云所有服务器提示操作方法与注意事项

本文将详细介绍如何关闭阿里云所有服务器的提示,并提供操作方法和注意事项,以帮助用户避免不必要的麻烦。正文:阿里云服务器是阿里云提供的一种云计算服务,它为用户提供了一种弹性的计算资源,可以满足用户的各种计算需求。然而,由于各种原因,用户可能需要关闭阿里云服务器。本文将详细介绍如何关闭阿里云所有服务器的提示,并提供操
关闭阿里云所有服务器提示操作方法与注意事项
2023-11-15

阿里云服务器接电脑主机详解操作步骤及注意事项

在信息化时代,企业的发展越来越离不开云计算技术。对于许多企业来说,使用阿里云服务器接电脑主机是一种常见的操作方式。本文将详细介绍如何操作阿里云服务器接电脑主机,以及需要注意的事项。一、操作步骤登录阿里云账号:首先,你需要在阿里云官网注册一个账号,然后登录。创建阿里云服务器:在阿里云管理控制台,选择“ECS”,然后
阿里云服务器接电脑主机详解操作步骤及注意事项
2023-12-15

阿里云清空数据库恢复出厂设置操作步骤及注意事项

在使用阿里云数据库的过程中,有时候需要清空数据库并恢复到出厂设置。本文将介绍如何进行这个操作,并提供一些注意事项。详细说明:步骤一:登录阿里云控制台首先,打开浏览器,访问阿里云官网(https://www.aliyun.com/),点击右上角的“登录”按钮,输入您的账号和密码,成功登录后进入控制台页面。步骤二:选
阿里云清空数据库恢复出厂设置操作步骤及注意事项
2024-01-19

阿里云服务器如何进行容量扩容?详析操作步骤及注意事项

随着企业数字化转型的推进,越来越多的企业开始将业务部署到云服务器上,以提高效率、降低成本。然而,随着业务规模的扩大,有时会遇到服务器容量不足的问题,这时就需要对服务器进行扩容。本文将详细讲解阿里云服务器如何进行容量扩容,并提供相关操作步骤和注意事项。一、阿里云服务器容量扩容的基本操作流程阿里云服务器容量扩容的操作
阿里云服务器如何进行容量扩容?详析操作步骤及注意事项
2023-10-30

编程热搜

目录