node.js调试问题
发布于 8 年前 作者 lzszone 4792 次预览 最后一次回复是 8 年前 来自 问答
老哥们,在下目前的项目遇到一个bug,无法重现 具体表现为: node命令行显示能收到请求 前台收不到任何服务器的返回 前台post数据到后台,数据库没有被写入 重启node程序即可正常工作 伴随有数据库崩溃,不丢数据,无法确认因果关系,不同时发生
目前没有什么解决思路,也不能重现问题,仅有一些猜测:
node异常 node执行程序某一部分的时候似乎被阻塞了,但是程序全是异步写的,目前没看到有用同步的地方,在下对node底层不熟,也不知道存不存在这种情况
数据库异常 这个看起来好像更合理,因为命令行打印,说明程序应该没死,然后到数据库的请求一直得不到返回,程序就像假死了一样,但是也有奇怪的地方,因为数据库出错那为什么重启node程序就可以正常工作了?
数据库驱动异常 如果是这种情况好像重启程序就正常也有了解释,驱动设置应该是没问题的
node版本: 6.10.* LTS 框架: express 服务器: win server 2012 数据库: arangodb 驱动: arangojs
想问大家的问题:
- 之前在网上看到一篇关于node统计每个函数运行时间的指令…没记录忘了(尴尬).搜也搜不出来,有老哥知道吗?
- 有老哥遇到过类似的问题吗? 是什么原因,怎么调试解决的?
- node.js或者express下如何弄一个如果响应时间超过多少就不作处理的东西 4 任何建议
happy holiday
7 回复
这个数据没用过。 有连接池的概念么,如果有的话 检查下是否连接满了未释放导致的。
@imhered 谢谢,我得看看文档了,有帮助
会不会是跨域
看情况感觉像是有异常没有catch到导致程序不继续工作,而且应该跟数据库相关,通常去检查下自己代码跟驱动(通常是自己的,当然也不排除驱动)
问题解决了,但是不知道为什么,从两个方面解决的:
目前服务器再没有出现过异常,下面是大概的arangojs连接设置:
谢谢@imhered 老哥提供的方向
@lzszone 不容易,快一个月了,解决了就好。