关于javascript调试的问题:
我们有一个使用JavaScript和HTML制作的移动应用。此应用程序在Web容器内的移动平台(BlackBerry 10,Android,iOS)上运行。
此应用程序的另一部分正在远程服务器上运行。这部分也是通过在Node.js上运行的JavaScript实现的。
假设在客户端(移动设备上的JS)和服务器(Node.js上的JS)之间建立了一些通信,例如使用例如REST。
我想知道的问题是,是否可以同时无缝地调试双方。 例如。如果我在移动应用客户端有断点,如果可能的话,我怎样才能在服务器端调试到JS的所有方式。
任何建议都会有所帮助。
答案 0 :(得分:0)
您可以在服务器上使用node-inspector,然后您将拥有两个实例,但是具有相同的调试器工具集。
如果您正在单步调试代码客户端,并希望调试“进入”服务器,则必须在从客户端进行GET / POST之前在服务器调试器中放置一个断点。
提示:获取三个(至少两个)显示器设置。
答案 1 :(得分:0)
使用节点检查器是一个很好的调试策略,但也可以通过日志记录来补充调试器。
调试将让您逐步浏览事件链并检查变量的值和该链中函数的输出,但在生产中,它不会让您深入了解导致用户遇到错误的步骤或生产条件(即为什么我有一个空变量?为什么我的响应消息错误?)如果你使用调试而没有记录你将试图复制导致错误的生产条件,这是一种低效(通常是徒劳的)方式做事。
我想说实现你想要做的事情的最佳方法(解决同时发生的客户端和服务器事件的问题)就是在服务器和客户端上实现像Log4j这样的开源日志库。配置一个appender将日志发送到日志聚合器,如Loggly,它为您提供了分析客户端和客户端的工具。服务器记录在同一个地方(而不是手动从两个设备中提取日志文件)。
完成此操作后,您将能够将应用程序分发给测试人员,并且您将能够看到某些问题包含哪些操作,应用程序日志和硬件/网络状况。有了这些数据,您就会知道导致某些错误的更好的方法,并且可以更有效地使用该信息来使用节点检查器来调试它们。