iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何调试nodejs程序
  • 921
分享到

如何调试nodejs程序

2023-06-15 05:06:43 921人浏览 薄情痞子
摘要

如何调试nodejs程序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。开启nodejs的调试还记得之前我们讲到的koa程序吗?本文将会以一个简单的koa服务端程序为例,来展开n

如何调试nodejs程序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

开启nodejs的调试

还记得之前我们讲到的koa程序吗?本文将会以一个简单的koa服务端程序为例,来展开nodejs的调试。

先看下一个简单的koa服务app.js:

const Koa = require('koa');const app = module.exports = new Koa();app.use(async function(ctx) {  ctx.body = 'Hello World';});if (!module.parent) app.listen(3000);

上面的程序开启了3000端口,建立了一个Http服务。每次请求的时候,都会返回hello World,非常的简单。

要想运行上面的程序,我们需要执行node app.js。 这会执行app.js但是并不会开启调试功能。【推荐学习:《nodejs 教程》】

怎么进行调试呢?

我们需要加上 --inspect 参数:

node --inspect app.js

上面的代码将会开启nodejs的调试功能。

我们看下输出结果:

Debugger listening on ws://127.0.0.1:9229/88c23ae3-9081-41cd-98b0-d0f7ebceab5aFor help, see: https://nodejs.org/en/docs/inspector

结果告诉了我们两件事情,第一件事情就是debugger监听的端口。默认情况下将会开启127.0.0.1的9229端口。并且分配了一个唯一的UUID以供区分。

第二件事情就是告诉我们nodejs使用的调试器是Inspector。

Inspector是nodejs 8之后引入的,如果是在nodejs 7之前,那么使用的是legacy debugger。

调试的安全

如果debugger连接到了nodejs运行环境中,如果有恶意攻击者的话,这个恶意攻击者可以在nodejs环境中运行任意代码。这会给我们的程序带来很大的安全隐患。

所以我们一定要注意调试的安全性。一般来说,我们不建议进行远程调试。

默认情况下 --inspect 绑定的是127.0.0.1,这样就只允许本地程序访问。并且任何本地运行的程序都有权限进行该程序的调试。

如果我们真的想将debug程序暴露给外部程序的话,那么可以指明本机的外网IP地址或者0.0.0.0(表示任何地址,无限制),这样远程机子就可以进行远程调试了。

如果我们想进行安全的remote debug该怎么处理呢?

首先,我们要开启本地的debug:

node --inspect app.js

然后我们可以搭建一个ssh隧道,将本地的9221端口映射到远程服务器的9229端口:

ssh -L 9221:localhost:9229 user@remote.example.com

这样我们就可以通过连接本地的9221端口,进行远程调试了。

使用WEBStORM进行nodejs调试

JetBrains出品的WebStorm可谓是开发nodejs的利器,WebStorm自带有debug选项,如果开启该选项,则会在后台开启 --inspect:

如何调试nodejs程序

使用WebStorm来进行调试和使用idea来进行java程序调试类似,这里就不多介绍了。

使用Chrome devTools进行调试

使用Chrome devTools进行调试的前提是我们已经开启了 --inspect模式。

在chrome中输入chrome://inspect:

如何调试nodejs程序

我们可看到chrome inspect的界面,如果你本地已经有开启inspect的nodejs程序的话,在Remote Target中就可以直接看到。

选中你要调试的target,点击inspect,即可开启Chrome devTools调试工具

如何调试nodejs程序

你可以对程序进行profile,也可以进行调试。

这里我们关注的是调试,所以转到source一栏,添加你要调试的程序的源代码:

如何调试nodejs程序

加入断点即可开始调试了。和在chrome中调试web端的js是一样的。

使用node-inspect来进行调试

其实nodejs有一个自带的调试工具,叫做node-inspect,这是一个cli的调试工具。我们看一下怎么使用。

我们直接使用:

node inspect app.js< Debugger listening on ws://127.0.0.1:9229/f1c64736-47a1-42c9-9e9e-f2665073D3eb< For help, see: https://nodejs.org/en/docs/inspector< Debugger attached.Break on start in app.js:1> 1 const Koa = require('koa');  2 const app = module.exports = new Koa();  3 debug>

node inspect 做了两件事情,第一件事情就是生成子程序去运行node --inspect app.js,第二件事情就是在主程序中运行CLI调试窗口。

这个CLI调试程序为我们提供了一些非常有用的命令:

  1. Stepping

  • cont, c: 继续执行

  • next, n: Step到下一步

  • step, s: Step in

  • out, o: Step out

  • pause: 暂停运行的代码

  1. Breakpoints

  • setBreakpoint(), sb(): 在当前行设置断点

  • setBreakpoint(line), sb(line): 在指定的行设置断点

  • setBreakpoint(‘fn()’), sb(…): 在指定的function中设置断点

  • setBreakpoint(‘script.js’, 1), sb(…): 在指定的脚本文件中设置断点

  • clearBreakpoint(‘script.js’, 1), cb(…): 从文件中清除断点

  1. Information

  • backtrace, bt: 打印当前execution frame的backtrace信息

  • list(5): 列出源代码前后的5行

  • watch(expr): 添加监听表达式

  • unwatch(expr): 删除监听表达式

  • watchers: 列出所有的watchers

  • repl: 打开repl表达式

  • exec expr: 执行表达式

通过上面的命令,我们可以在CLI中进行比较复杂的调试活动。

看完上述内容,你们掌握如何调试nodejs程序的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 如何调试nodejs程序

本文链接: https://www.lsjlt.com/news/277747.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何调试nodejs程序
    如何调试nodejs程序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。开启nodejs的调试还记得之前我们讲到的koa程序吗?本文将会以一个简单的koa服务端程序为例,来展开n...
    99+
    2023-06-15
  • 怎么 调试nodejs程序
    本篇文章为大家展示了怎么 调试nodejs程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。对于开发者来说,在开发应用程序的过程中,往往为了开发方便和解决bug需要...
    99+
    2024-04-02
  • 如何调试nodejs
    Node.js是一个基于Chrome V8 JavaScript引擎的Javascript运行环境。它是一个轻量级、高效、可扩展的平台,可用于构建基于Web的应用程序和服务器端应用程序。然而,尽管Node.js很强大,但当我们在开发应用程序...
    99+
    2023-05-14
  • 如何调试Vue程序
    小编给大家分享一下如何调试Vue程序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.背景因为程序的调试非常重要,程序猿可以利用...
    99+
    2024-04-02
  • 微信小程序如何调试
    本篇内容主要讲解“微信小程序如何调试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序如何调试”吧!  调试工具  调试工具分为 7 大功能模块:Wxml、Console、Sources、...
    99+
    2023-06-26
  • IL如何动态调试.NET程序
    这篇文章主要为大家展示了“IL如何动态调试.NET程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“IL如何动态调试.NET程序”这篇文章吧。方法一:Reflexil v0.8 直接添加、修改I...
    99+
    2023-06-17
  • 如何进行小程序的测试与调试
    小程序的测试与调试可以通过以下几个步骤来进行: 使用开发者工具:小程序开发者工具是一个专门用于小程序开发和调试的工具,可以在其中...
    99+
    2024-04-17
    小程序
  • c语言如何单步调试程序
    要在C语言中进行单步调试程序,可以使用调试器。调试器是一个开发工具,可以帮助程序员在程序执行过程中逐行跟踪代码,查看变量的值,以及检...
    99+
    2023-08-24
    c语言
  • pycharm如何设置断点调试程序
    在 pycharm 中设置断点调试程序需要以下步骤:添加断点:在代码行单击鼠标左键,然后选择 "toggle breakpoint"。启动调试器:选择 "run" > "debug...
    99+
    2024-04-18
    pycharm
  • nodejs如何对接程序
    Node.js是一种非常流行的JavaScript运行时环境,可以用于构建高性能且可扩展的网络应用程序。随着Node.js的日益流行,越来越多的开发者想要将其应用到自己的项目中。本文将介绍如何在不同平台上对接Node.js程序。一、在Win...
    99+
    2023-05-14
  • python如何在Shell中调试程序崩溃
    小编给大家分享一下python如何在Shell中调试程序崩溃,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在 Shell中调试程序崩溃如果你是一个拒绝使用 IDE,并在 Vim 或 Ema...
    99+
    2024-04-02
  • android开发者模式如何调试程序
    要调试Android应用程序,您需要按照以下步骤打开开发人员选项和USB调试:1. 在Android设备上打开“设置”应用程序。2....
    99+
    2023-10-07
    android
  • 微信小程序API如何打开调试
    这篇“微信小程序API如何打开调试”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“微信小程序API如何打开调试”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入...
    99+
    2023-06-26
  • 如何在Linux系统上调试Java程序?
    在Linux系统上调试Java程序是Java开发者经常遇到的问题之一。本文将介绍如何在Linux系统上使用常见的调试工具来诊断和解决Java程序中的错误。 一、使用命令行调试器 1.1 启动调试模式 在Linux系统上调试Java程序的第一...
    99+
    2023-07-29
    linux leetcode windows
  • 如何利用PDB实现Python程序调试
    本篇内容介绍了“如何利用PDB实现Python程序调试”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如何进行Python程序调试 1.加入断...
    99+
    2023-06-17
  • Linux系统下如何使用GDB调试程序
    本文将为大家详细介绍“Linux系统下如何使用GDB调试程序”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Linux系统下如何使用GDB调试程序”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容...
    99+
    2023-06-28
  • JavaScript程序怎么调试
    本篇内容介绍了“JavaScript程序怎么调试”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Chrome 开发人员工具:停止调试断点单步调...
    99+
    2023-06-27
  • 用 ipdb 调试 Python 程序
    ==> 安装  pip install ipdb==> 使用    ---> python -m ipdb xxx.py  程序内部: from ipdb import set_trace set_trace()==>...
    99+
    2023-01-31
    程序 ipdb Python
  • 如何使用webstrom调试Vue.js单页面程序
    这篇文章将为大家详细讲解有关如何使用webstrom调试Vue.js单页面程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言使用 webstrom 调试 Vue.js...
    99+
    2024-04-02
  • nodejs用哪些调试工具
    这篇文章将为大家详细讲解有关nodejs用哪些调试工具,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 调试node的工具:1、node-ins...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作