2016年,Node 决定将 Chrome 浏览器的"开发者工具"作为官方的调试工具,使得 Node 脚本也可以使用图形界面调试

1.准备

  创建目录

D:\nodejs>mkdir test

D:\nodejs>cd test

  生成package.json文件

D:\nodejs\test>npm init -y
Wrote to D:\nodejs\test\package.json: {
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}

  安装 Koa 框架和 koa-route 模块

D:\nodejs\test>npm install --save koa koa-route
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN test@1.0. No description
npm WARN test@1.0. No repository field. + koa-route@3.2.
+ koa@2.7.
added packages from contributors and audited packages in .74s
found vulnerabilities

  新建脚本test.js

const Koa = require('koa');
const router = require('koa-route'); const app = new Koa(); const main = ctx => {
ctx.response.body = 'Hello World';
}; const welcome = (ctx, name) => {
ctx.response.body = 'Hello ' + name;
}; app.use(router.get('/', main));
app.use(router.get('/:name', welcome)); app.listen();
console.log('listening on port 3000');

2.调试服务脚本

  运行时,加--inspect启动调试模式

D:\nodejs\test>node --inspect test.js
Debugger listening on ws://127.0.0.1:9229/2d21dab8-02a4-4fde-99b3-2bdfecc6bac4
For help, see: https://nodejs.org/en/docs/inspector
listening on port

  浏览器打开http://127.0.0.1:3001/

  打开调试工具的方法

   (1)在 http://127.0.0.1:3001 的窗口打开"开发者工具",左上角有Node 标志

   (2)在 Chrome 浏览器的地址栏,键入 chrome://inspect 或 about:inspect

    (3)调试工具窗口

    Console(控制台)、Source(源码)、Memory(内存)、Profile(性能)

    (4)设置断点

    浏览器访问http://localhost:3001/baby,页面会显示正在等待服务器返回

    切换到调试工具,可以看到 Node 主线程处于暂停(paused)阶段

  进入 Console 面板,输入 name

  正处在断点处的上下文(context)

  Sources 面板,右侧可以看到 Watch、Call Stack、Scope、Breakpoints 等折叠项

  Scope 中,可以看到 Local 作用域和 Global 作用域里面的所有变量

  在Local 作用域里面修改变量name,并继续运行

    页面显示

    (5)终止调试

      命令下,ctrl+c

3.调试非服务脚本

Web 服务脚本会一直在后台运行,但是非服务脚本,运行完就结束了,来不及打开调试工具,如:

function say(word) {
console.log(word);
} function execute(someFunction, value) {
someFunction(value);
} execute(say, "Hello");

  进入调试

node --inspect-brk=9229 test.js

  --inspect-brk指定在第一行就设置断点

  chrome://inspect

  点击继续运行,在console面板输出Hello结束

Node 脚本的调试工具的更多相关文章

  1. Nodejs随笔(二):像可执行shell脚本一样,运行node 脚本!

    在每次编写nodejs脚本的时候,只需在程序的开头加上如下代码(写过shell脚本的人应该很熟悉): #!/usr/local/bin/node 同时,修改文件权限为可执行: mesogene@mes ...

  2. 发测试邮件或垃圾邮件node脚本

    npm install nodemailer 执行后,指定目录下会出现node_modules模块,再相同目录下,创建main.js,js代码如下: var nodemailer = require( ...

  3. Node调试工具JSHint

    Node调试工具JSHint的安装及配置教程 作者: 字体:[增加 减小] 类型:转载 时间:2014-05-27我要评论 Node的优势我就不再乱吹捧了,它让javascript统一web的前后台成 ...

  4. 使用node.js编写脚本将JSON数据转换为SQL语句

    安装依赖模块 当node.js脚本在运行的时候,需要很多支持模块,这些模块存储在node_modules文件夹中.该脚本在执行过程中需要使用到fs.string-format两个支持模块,作用分别是: ...

  5. [转]为什么我要用 Node.js? 案例逐一介绍

    原文地址:http://blog.jobbole.com/53736/ 介绍 JavaScript 高涨的人气带来了很多变化,以至于如今使用其进行网络开发的形式也变得截然不同了.就如同在浏览器中一样, ...

  6. 部署node程序并维持正常运行时间

    12.2部署的基础知识 假定你创建了一个想要展示的Web程序,或者创建了一个商业应用,在把它放到生产环境中之前需要测试一下.你很可能会从一个简单的部署开始,然后再做些工作让它的正常运行时间和性能达到最 ...

  7. Node调试之道-----JSHint

    Node调试之道-----JSHint Node的优势我就不再乱吹捧了,它让javascript统一web的前后台成为了可能.但是对于新手来说,server端的JS代码可能不像client端的代码那么 ...

  8. 解放双手:如何在本地调试远程服务器上的Node代码

    写在前面 谈到node断点调试,目前主要有三种方式,通过node内置调试工具.通过IDE(如vscode).通过node-inspector,三者本质上差不多.本文着重点在于介绍 如何在本地通过nod ...

  9. 【转】为什么我要用 Node.js? 案例逐一介绍

    原文转自:http://blog.jobbole.com/53736/ 介绍 JavaScript 高涨的人气带来了很多变化,以至于如今使用其进行网络开发的形式也变得截然不同了.就如同在浏览器中一样, ...

随机推荐

  1. spark调优——算子调优

    算子调优一:mapPartitions 普通的map算子对RDD中的每一个元素进行操作,而mapPartitions算子对RDD中每一个分区进行操作.如果是普通的map算子,假设一个partition ...

  2. 面向IO编程--一切皆文件

    in Unix, everything is a file.This simplifies the manipulation of data and devices into a set of cor ...

  3. Subband Decomposition

    子带分解. 例如语音信号是宽带信号,根据奈奎斯特采样定理,采样率为16kHz的语音信号的有效带宽是8KHz,不论是对于降噪,aec,vad,波束形成亦或是logfbank特征提取,我们都期望更精细的处 ...

  4. (1)IdentityServer4 V3.0.2-安装模板

    控制台运行命令: dotnet new -i IdentityServer4.Templates

  5. shell习题训练

    shell习题训练 求2个数之和 计算1-100的和 将一目录下所有的文件的扩展名改为bak 编译当前目录下的所有.c文件: 打印root可以使用可执行文件数,处理结果: root's bins: 2 ...

  6. JAVA基础--MySQL

    环境信息 安装环境 :Ubuntu 14 Desktop(桌面版) m安装版本 :MySQL 5.7.23 安装步骤 linux环境下安装过程很简单 三条命令行即可安装完成: 1. sudo apt- ...

  7. Trie学习笔记

    Trie(字典树) 基本数据结构 实际是:对于每个字符串组的每一个不同前缀建立节点 基本代码 void Insert(char *s,int p){ int now=0; int l=strlen(s ...

  8. JS字符串转换为JSON的四种方法

    转自:https://www.cnblogs.com/hgmyz/p/7451461.html 1.jQuery插件支持的转换方式:  示例: $.parseJSON( jsonstr ); //jQ ...

  9. leetcode:146. LRU缓存机制

    题目描述: 运用你所掌握的数据结构,设计和实现一个  LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果密钥 ( ...

  10. 线程:Java中wait、notify、notifyAll使用详解

    基础知识 首先我们需要知道,这几个都是Object对象的方法.换言之,Java中所有的对象都有这些方法. public final native void notify(); public final ...