Node.js和MySQL和注意事项之间的相互作用

Node.js和MySQL和注意事项之间的相互作用
Node.js,作为运行服务器端环境的JS,已经出现好几年了。最近,我的一个朋友也在开发这一领域,但它刚刚碰上了许多坑,几天前,他们在运行数据库时遇到了一些问题。后来,我们一起看了看。这些都是节点自身机制的问题。下面我们总结一下初学者的经验。

我朋友的数据库使用MySQL。至于为什么不使用MongoDB的上层阶级,这是选择的结果,因为许多新朋友似乎总是觉得Node.js是与MongoDB,所以这里是一个简单的人。我后来写了一个简单的小例子,整个小例子用快递框架,并node_modules下载快车,EJS模板。看下目录
server.js =Node.js服务器启动文件

db.js =数据库操作文件

视图存储模板文件,这是所有页面存储的地方。

公共=所有静态资源存储的地方,例如CSS js图像,等等

首先,我们介绍了Node.js连接MySQL数据库的步骤。第一步,我们需要安装一个新的封装称为MySQL,这是官方提供的。保证了稳定性。还有其他的新包,当然。我们只使用MySQL软件包,安装方法简单,与输入的指令安装MySQL,NPM保存等待下载完成。
看到这个,就是安装成功了。

然后我们打开db.js文件和写一些代码,数据库必须在数据库,看看下面的:
代码很小,意思很明显,第一步是引入mysql包,然后我们创建一个空对象,他被分配给一个名为查询的方法,这个方法接受两个参数,第一个参数是SQL语句,当你查询数据时,第二个参数是一个回调函数,获取查询结果。

在函数内部,第一段代码用于设置MySQL操作的配置
主持人代表MySQL安装的地址,因为我是一个本地数据库,所以使用localhost直接。

用户表示MySQL的用户名

密码表示MySQL的密码。

数据库显示要选择的特定库的名称。

端口代表端口,不被填充,默认值是3306。

对mysql.createconnection,连接的返回值,是一个特定的对象,然后我们使用MySQL,所有这些都是基于他。

调用连接的方法来确定连接是否成功,如果失败,则打印错误信息并停止运行。
查询电话连接的方法向数据库发送SQL语句,并将结果用回调函数返回,回调函数有三个参数,第一个参数是错误的对象,如果操作失败,它将停止打印错误消息,第二个参数是特定的返回结果,正常情况下是一数组,其中包含很多JSON,第三个参数是一个数组,其中包含大多数的每个数据的解释,如当前的数据属于库、列表等等。我们使用的是最自然的二参数
当数据库操作结束时关闭连接。
整个过程非常简单,但是有两个问题,第一个是数据库的连接丢失的问题,不知道是否有人第一次访问这个网页,数据库的连接是正常的,到首页的第二次访问,数据库连接是没有错的,说的原因是连接损耗。我们的一个数据库操作端封闭再次访问数据库连接时,找不到连接,但连接无法关闭,有些人可能会觉得陌生,时间会访问每个访问db.js文件,不是每次都会有一个新的连接是的,只是我开始生成连接的代码,不是在DB的查询函数中,而是在外部,如下所示:
这会导致连接将仅生成一次,和关闭后关闭,复试不能连接。当你把它放在功能、使用出口暴露接口。每次你访问的主页,你去创建一个连接的过程,每一次你得到新的连接,没有问题。事实上,连接池能在项目中直接使用,节省了很多麻烦。

第二个问题是,我们推出了db.js在server.js
在这一点上,你可以看到,mysql.query有两个参数,第一个是SQL,二是回调函数,回调函数的参数有一个结果,这实际上是数据库查询的结果。有的人会说为什么不使用直接返回在db.js,返回的查询结果,什么回调!
事实上,这里是一些由异步Node.js带来的问题,如果我们改变代码server.js以较低的数字
因为我们看到查询MySQL软件包是一个异步操作,从而引出下文(res.render)方法不是等他出来后查询的执行往往是结果还没出来,已经开始渲染页面,但数据还没有公布,所以这将是错误的。所以我们不得不把一个回调函数为。在MySQL的查询方法完成,结果被传递给回调函数,我们写我们自己,这样我们就可以在回调函数中得到的结果,然后执行渲染一遍。当然,解决这个问题也可以引入第三方包异步解决同步问题,要看个人。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部