错误排查
运行时出现错误
- 开发调试:看 ide 中的错误检查
- 前端错误:看浏览器开发人员控制台输出的错误
- 后端错误:看后端日志输出的错误
错误检查
开发调试时出现错误,首先打开错误检查,选择当前页面,如果有错误,双击错误定位到具体错误,根据提示解决错误
页面 JS 编译错误
打开页面,不显示页面,直接显示错误,这类错误是页面编译出错导致的。
下图为一种常见的错误:代码中写了 await,方法上没有注明 async。
- 调试运行时报错,如下图所示
- 正式运行时报错,如下图所示
仔细阅读错误,其中 xxx.user.js 就是 w 页面对应的 js 文件编译后的文件名,在 ide 中打开 xxx.js,定位到出错的行和列,如下图所示。结合提示的错误,解决错误
页面源码编译错误
报错中如果出现 xxx.component.js 或 xxx.build.js,如下面两张图所示,需要打开这些文件,查看报错的代码
查看 xxx.component.js
在预览页面上,点右键,选择查看框架源代码,打开新的页面
在打开的页面的地址栏中,保留 pcxapp 及前面的内容,将后面的内容替换为报错信息中 pcx 后面的路径及文件,例如:
view-source:https://testzx04166-zx0416-ide.g.xcaas.net/pcxapp/ 加上 pcx/zhuye.component.js,回车
这样就能看到 xxx.component.js 文件的内容了,找到错误中提示的行列,如果不能看出问题,可以往前面再看看。
查看 xxx.build.js
控制台报错如下:
/usr/local/x5/model-user/.debug/pcx/pages/pcx/xiangmu_ch/xiangmu_glmb82.build.js:2058:522: ERROR: Expected ")" but found ";"
例如:ide的域名为:
https://testzx04166-zx0416-ide.g.xcaas.net/
将 console 中 xxx.build.js 的路径 /usr/local/x5/model-user/.debug/pcx/pages 替换为 ide 的域名 /pcxapp 接口,替换后 build.js 的访问 url 为:
https://testzx04166-zx0416-ide.g.xcaas.net/pcxapp/pcx/xiangmu_ch/xiangmu_glmb82.build.js
这样就能看到 xxx.build.js 文件的内容了,找到错误中提示的行列,查看具体的错误。
页面运行时错误
运行时,界面显示错误,如下图所示,或者虽然不显示错误,但是执行没有效果或效果不对,这类错误是页面运行时错误。
打开浏览器的开发人员工具,从控制台的输出中找到这个错误,找到开发者自己的 JS 文件,文件后面还显示出错的行和列。
调试运行时,开发者自己的 JS 文件是 xxx.user.js,如下图所示
正式运行时,开发者自己的 JS 文件是 pages_pcx_xxx_component_js,打包时 JS 文件名的生成规则是:_pages目录文件名_component_js随机数.js。例如
- 在 ide 中的路径是:model/UI2/pcx/findError/codeError.js
- 打包后的路径是:_pages_pcx_findError_codeError_component_js_xxx.js
如下图所示
打开该文件,定位到出错的行和列,这就是出错的地方
后端服务错误
从控制台里面看到是请求出错,这就是后端服务出错,如下图所示
切换到网络页,查看请求的标头、载荷和预览,如下图所示
还可以看到后端日志
- 调试运行时,在 ide 中切换到代码页,打开 logs/java-runtime.log 文件,这是后端日志文件,如下图所示
- 正式运行时,从网络请求的响应标头中获取 POD 的名称,第二个 X-Kong-Proxy-Latency 的后面是 POD 的名称,如下图所示
从应用服务管理中打开当前应用的监控,如下图所示
切换到响应标头中返回的 POD 名称,在 POD 日志中,切换到 java-runtime 的日志,如下图所示
打开错误中提到的文件,定位到出错的行和列,这就是出错的地方