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. mysql免安装版本测试(mysql-5.7.18-winx64)

    最近在某大学代课要安装mysql,由于他们的电脑机器不能用installer安装(具体原因我也不清楚,一点击就显示要结束进程),在查阅了资料之后在我的小笔记本上做了一把实验,下面记录过程 参考博客为: ...

  2. spark调优——JVM调优

    对于JVM调优,首先应该明确,(major)full gc/minor gc,都会导致JVM的工作线程停止工作,即stop the world. JVM调优一:降低cache操作的内存占比 1.   ...

  3. 浏览器性能监控performance使用

    浏览器中有一个performance的性能监控,平时我也没有用到,接手了一个大数据的项目,发现页面打开的比较慢,使用浏览器的performance分析可以看到各个步骤花费的时间. 关于项目的性能分析如 ...

  4. vim命令(转)

    1.Linux下创建文件 vi test.txt 或者 vim test.txt 或者 touch test.txt 2.vi/vim 使用 基本上 vi/vim 共分为三种模式,分别是命令模式(Co ...

  5. [PHP]全国省市区信息,mysql数据库记录

    下载地址: https://files.cnblogs.com/files/wukong1688/T_Area.zip 或者也可以复制如下内容: CREATE TABLE IF NOT EXISTS ...

  6. linux命令之------Mv命令

    Mv命令 1)作用:用来为文件或目录改名/或将文件或目录一如其他位置 2)-i:若指定目录已有同名文件,则先询问是否覆盖旧文件: 3)-f:在mv操作要覆盖某已有的目标文件时,不给任何指示: 4)案例 ...

  7. navigator对象(了解即可)

    navigator是window的子对象 navigator.appName // Web浏览器全称navigator.appVersion // Web浏览器厂商和版本的详细字符串navigator ...

  8. mac切图

    1.按住command键位, 两只手指点击需要切的图 2.再在右边栅格化图层 3.选中需要剪切的图层.command+c 和command+n和 command+v OK 切整张图.先 option ...

  9. 解决wordpress修改固定链接后出现404错误不能访问文章的方法

    首先,建议大家安装完wordpress网站程序之后第一时间设置一下固定链接,避免以后修改出错.在wp后台仪表盘左侧导航里找到“设置——固定链接”即可配置你的wordpress固定链接,通常我习惯使用的 ...

  10. npm安装插件怎么判断是--save 还是--save--dev

    npm敲到一半的时候发现:诶 这个到底是-g呢还是--save还是--save-dev呢 1.首先要先了解package.json 在Node.js中,模块是一个库或框架,也是一个Node.js项目. ...