使用的是 使用的mysql模块。
express + mysql 使用简单的查询语句, 在我自己在浏览器中不停的刷新 不会报错。
但是我叫我同事帮我刷新。就2台电脑同时不停刷新访问页面。就报错了。
错误信息:
代码:
各位遇到过这个情况吗?
跟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就不报错! 我把代码图片贴出来!
这是入口:
![mysql.jpg](http://cnode.qiniudn.com/FlNL7-YaL5R5ykGg3Z4gyEGE3AIW)
上面是大概的内容。
感谢你的帮助
@xadillax mysql
init.init 的问题,你的init是全局的变量,每次执行 init.init(req, res)的时候,新的req和res就会替换之前的,不同http请求都混到一起了,这个不能这么写
@loye **学习了。。。。。谢谢啦! ** 我还是以一个对象传入进函数调用吧。那样就不会错了。
@lixuewu 12 楼说得很对。所以说是多次传输导致出错了。
问题。串号了。