nodejs如何调试,怎么用nodejs运行js代码
如何调试你的节点代码?下面文章介绍两种调试Node.js的常用方法,有一定的参考价值。希望对你有帮助!
node.js速度课程简介:进入学习
很多时候,我被Node.js的调试所困扰,只用侵入式的方法console.log,但其实Node.js可以像浏览器调试一样方便。
本文的环境:
老兄
铬合金
节点v12.12.0
Vscode版本:1.61.1
本文示例
这个例子使用了之前探索过的洋葱模型。根目录中只有一个文件index.js,如下所示:
const Koa=require( Koa );
const app=new Koa();
console.log(“测试”)
//中间件1
app.use((ctx,next)={
console . log(1);
next();
console . log(2);
});
//中间件2
app.use((ctx,next)={
console . log(3);
next();
console . log(4);
});
app.listen(9000,()={
console.log(`服务器正在启动`);
});
V8 Inspector Protocol + Chrome DevTools
我们进入项目根目录并执行(注意这个8888端口,后面会用到):
Node-inspect=8888index.js结果如下:
结果是一个链接3354 ws://127 . 0 . 0 . 1:8888/5f 5c 59 fc-d42 b-4ab 0-be15-6 Fe 1a 05 ed 2d。这个链接是Node.js和Chrome之前通信的websocket地址。通过websocket通信,我们可以在Chrome中实时看到Node.js的结果。
如何进入 Chrome 的调试界面
第一种方式(自己尝试无效)
打开http://localhost:8888/json/list,其中8888是上述- inspect的参数。
[
{
描述: node.js实例,
devtoolsFrontendUrl : chrome-devtools://devtools/bundled/js _ app . html?experiments=true V8 only=truews=localhost:8888/5f 5c 59 fc-d42 b-4ab 0-be15-6 Fe B1 a 05 ed 2d ,
devtoolsfrontendurlcomt : chrome-dev tools://dev tools/bundled/inspector . html?experiments=true V8 only=truews=localhost:8888/5f 5c 59 fc-d42 b-4ab 0-be15-6 Fe B1 a 05 ed 2d ,
faviconUrl : https://nodejs . org/static/images/favicons/favicon . ico ,
id : 5f 5c 59 fc-d42b-4ab 0-be15-6 Fe B1 a 05 ed 2d ,
title: index.js ,
类型“:”节点,
URL : file:///Users/gping feng/Documents/Personal/Test/Test-onion/index . js ,
webSocketDebuggerUrl : ws://localhost:8888/5f 5c 59 fc-d42b-4ab 0-be15-6 feb 1a 05 ed2d
}
]很多资料都说可以通过devtoolsFrontendUrl直接访问,但是尝试过没有成功。【可能和我的环境有关】
第二种方式
检查数据,在stackoverflow中找到对应的方案,如下:
dev tools://dev tools/bundled/inspector . html?experts=truews=127 . 0 . 0 . 1:8888/5f 5c 59 fc-d442b-4ab 0-be15-6 Fe B1 a 05 ed2d其中dev tools://dev tools/bundled/inspector . html?Experiments=true是固定的,ws参数对应于websocket地址。
您可以看到如下界面:
第三种方式
Chrome打开HTTP监控界面页面,打开dev工具,执行node-inspect=8888index.js后可以看到这个图标,点击它:
可以看到和浏览器一样的调试页面,比如按源代码查看脚本面板,按概要文件监控性能面板等。
另外可以访问chrome://inspect/#devices,可以看到当前浏览器正在监听的所有检查。
Vscode 调试
除了浏览器,各大ide都支持Node.js的调试本文以Vscode为例。
Launch Configuration
打开调试页面,向我们的节点项目添加启动配置:
选择Node.js
这将生成相应的文件。项目根目录下的vscode/launch.json(当然也可以手动创建),其中program是指文件入口,{ workspace folder }是指根目录。
{
//使用IntelliSense了解可能的属性。
//悬停以查看现有属性的描述。
//更多信息,请访问:https://go.microsoft.com/fwlink/? linkid=830387
版本: 0.2.0 ,
配置:[
{
类型: pwa节点,
请求:启动,
名称:启动程序,
skipFiles: [
node_internals/**
],
程序: ${workspaceFolder}/index.js
}
]
}按F5,或单击下面的按钮:
结果:
大家可以看到,在左侧可以显示当前作用域的值、调用栈等信息,在右上方可以一步一步调试函数、重启函数,非常强大。
Attach to Node Process Action
通过附加到节点流程操作,我们可以直接调试正在运行的Node.js流程。
例如,让我们先启动项目——npm run start。
然后命令shift p(窗口Ctrl Shift p),输入Attach to Node Process Action,回车,然后选择正在运行的进程,回车,就可以调试上面配置的代码了。
总结
本文总结了两种常见的调试Node.js的方法第一种Node.js通过websocket向Chrome浏览器传输信息,我们直接在Chrome中调试。第二种方式是通过Vscode启动配置和自定义配置进行调试。通过附加到节点进程动作,无需配置即可方便地调试运行中的Node.js代码。
更多关于node的信息,请访问:nodejs教程!这是调试Node.js代码的两种方法的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。