nodejs如何调试,怎么用nodejs运行js代码

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: