多年之前(大概Node.js@6.3版本之前)我们的调试方式,几乎如下三点:
console.log
debugger
node-inspector
虽然有时console.log也会用,但是我可能会使用一些更好的日志工具,以前的log4,现在的eggjs提供的logger,良好的日志分级,有助于提高查询问题的效率,如今,就直接使用eggjs提供的内置logger对象了。今天,我们主要是来说一说Debug的事情。调试几乎是每一个程序员必备的技能,而选择合适的调试就能极大的提高工作效率,由于Node.js@6.3版本之后已经内置了调试器,因此也可以和Chrome DevTools结合起来使用,于是node-inspector就这样退出了历史舞台。
node --inspect app.js
node --inspect-brk app.js
现在使用Chrome DevTools来调试Node.js,其实就跟之前移动端(H5)调试一样,非常简单和方便,解决了调试问题,在日常开发中绝对是一个很大的提高。目前,Chrome市场中有一些辅助工具,能帮你捕获Node.js启动的调试进程,来快速打开Chrome DevTools,你不妨在市场中找一找,说不定会有意外的收获。
这篇文章主要还是来说一说在vscode中如何来调试eggjs应用,官方团队提供了一个辅助插件来帮助我们配置vscode的调试器,https://github.com/eggjs/vscode-eggjs,我们安装即好。如果你有兴趣这里的原理,不妨去看一看vscode的文档,有专门讲述node.js调试器部分。(其实就是通信)
安装完成之后,你还需要写一个简单的配置,如下:
{
"name":"Launch Egg",
"type":"node",
"request":"launch",
"cwd":"$",
"runtimeExecutable":"npm",
"windows":{"runtimeExecutable":"npm.cmd"},
"runtimeArgs":["run","debug","--","--inspect-brk"],
"console":"integratedTerminal",
"protocol":"auto",
"restart":true,
"port":9229,
"autoAttachChildProcesses":true
}
然后可以在代码处,打上一个断点,启动调试器。
感谢eggjs团队提供了很简单的调试配置,几乎不用你来处理,就可以使用vscode来调试你的Web应用。
这几年Node.js生态提供了很多有趣的项目来完成Node.js从开发,调试,性能分析,到运维部署,自动化,都有很健壮性的项目来完成,对于Node.js来说,这是走向成熟,走向大规模应用的标志性阶段,但这不意味着前端工程师就能随意的切入,服务端的知识体系,还是一个与前端很不同的体系,不过,大家要是能沉下心来,持续学习,应该会有不错的收获。
你也可以关注我的新浪微博,搜索i_icepy,很期待和大家交流。
领取专属 10元无门槛券
私享最新 技术干货