[求大神] 并发情况下mysql查询错误?
发布于 10 年前 作者 lixuewu 4253 次浏览 最后一次编辑是 8 年前 来自 问答

使用的是 使用的mysql模块。

express + mysql 使用简单的查询语句, 在我自己在浏览器中不停的刷新 不会报错。

但是我叫我同事帮我刷新。就2台电脑同时不停刷新访问页面。就报错了。

错误信息: aaaaaaa.jpg

代码: bbbbbb.jpg

各位遇到过这个情况吗?

15 回复

跟SQL没有关系,是因为重复SET HEADERS导致的。

看错误日志。。这个和并发有关系吗 ,欺负我没读过书。。。。

@MiguelValentine 嗯。 我也没有 设置header的啊。 所有输出上面的代码已经列出来了。 奇怪的是。 我在浏览器刷新就没出现任何问题。 但是用并发工具一测试。 立马报错。

@jeremy16601 好吧。你yin了。 我也觉得奇怪啊。。。。。 一个人在浏览器中不停的刷新页面。没问题。 要是多个人同时刷新。就报错了。。。。。

调用init.get的时候数据库是否已关闭?我之前用mongo的时候有遇到过这个错,就是在某个函数中调用数据库,可是在另外一个函数中已经关闭数据库连接了

用连接池呗。

@JerroldLee 嗯。之前没有关闭数据库连接的。

@xadillax 用了连接池一个的出错!不知道什么原因。。。。 我用express + mysql 出错。 但是用node原生的 http + mysql 就不出错。。 引入的是同一个mysql模块。

不好意思,之前没看你的错误信息和代码。

你的代码看不出上下文不好说。不过你的错误意思大致是一个请求你已经给它 setheader 之类的操作了然后又来一遍报的错。你看看是不是哪里重复输出了。

@xadillax 我也没搞明白什么情况。是mysql模块 的 thorw err 直接在页面输出了错误!然后我在 res.json();就报错了。 这个是在express下做的。

我用node原生的http就不报错! 我把代码图片贴出来!

这是入口: app.jpg

index.jpg

init.jpg

![mysql.jpg](http://cnode.qiniudn.com/FlNL7-YaL5R5ykGg3Z4gyEGE3AIW)

上面是大概的内容。
感谢你的帮助

init.init 的问题,你的init是全局的变量,每次执行 init.init(req, res)的时候,新的req和res就会替换之前的,不同http请求都混到一起了,这个不能这么写

@loye **学习了。。。。。谢谢啦! ** 我还是以一个对象传入进函数调用吧。那样就不会错了。

@lixuewu 12 楼说得很对。所以说是多次传输导致出错了。

屏幕快照 2014-09-19 下午3.47.02.png

问题。串号了。

回到顶部