本文目录一览:
1、如何学sea.js,knockout.js,node.js,npm.js等 2、如何调试nodejs 3、node中进行debug 4、如何使用DevTools调试Nodejs运行的Javascript 5、[nodejs 模块开发怎么调试](#nodejs 模块开发怎么调试)
如何学sea.js,knockout.js,node.js,npm.js等
- 安装NodeJS
- 编译环境源代码编译器,通常Unix/Linux平台都自带了C的编译器(GCC/G)。如果没有,请通过当前发行版的软件包安装工具安装make,g++这些编译工具。
- Debian/Ubuntu下的工具是
apt-get
- RedHat/centOS下通过
yum
命令 - MacOSX下你可能需要安装xcode来获得编译器
- Debian/Ubuntu下的工具是
- 网络加密其次,如果你计划在Node.js中启用网络加密,OpenSSL的加密库也是必须的。该加密库是
libssl-dev
,可以通过apt-get install libssl-dev
等命令安装。 - 手动编译
wget underscore
由于一些特殊的网络环境,直接通过npm install
命令安装第三方库的时候,经常会出现卡死的状态。幸运的是国内CNode社区的@fire9同学利用空余时间搭建了一个镜像的NPM资源库,服务器架设在日本,可以绕过某些不必要的网络问题。你可以通过以下这条命令来安装第三方库:
如果你想将它设为默认的资源库,运行下面这条命令即可:npm --registry "https://registry.npmmirror.com" install
npm config set registry "https://registry.npmmirror.com"
- 通过npm安装包。安装好之后会自动被安装到
/usr/local/bin
目录下,而相依的函式库也会自动安装到/usr/local/lib/node
目录下,实在是非常方便。
- 编译环境源代码编译器,通常Unix/Linux平台都自带了C的编译器(GCC/G)。如果没有,请通过当前发行版的软件包安装工具安装make,g++这些编译工具。
- 安装NodeJS调试环境
- 用npm命令安装全局模式的
node-inspector
组件:sudo npm install -g node-inspector
- 更改端口:修改
node-inspector/lib/config.js
的端口'web-port': { desc: 'Port to host the inspector', convert: conversions.stringToInt, defaultValue: 6868 },
- 使用
node-inspector
启动一个调试工具:- 在chrome浏览器中输入
debug?port=5858
打开chrome的调试模式 - 使用
node debug
调试nodeJS项目:node --debug-brk=5858 read.js
- 可以在chrome中查看到调试信息
- 在chrome浏览器中输入
- 使用Sublime构建NodeJS:
- 设置Sublime的Builder -> Tools -> Build System -> New Build System
- 将如下代码写入:
{ "cmd": ["/usr/local/bin/node", "$file"], "file_regex": "^[ ]File\"(...*?)\",line ([0-9]*)", "selector": "source.javascript" }
- 保存为
NodeJs.sublime-build
文件,如此可以直接使用Cmd+B
来使用nodejs运行程序
- 用npm命令安装全局模式的
如何调试nodejs
Node Inspector 是一个可在webkit内核浏览器下进行nodejs调试的工具,其界面基本上跟chrome的调试工具一样,使用非常方便。 首先在全局环境中安装node inspector:
npm install -g node-inspector
安装完成之后,以调试模式运行需要调试的node代码,比如:
node --debug-brk app.js
这种方式会在代码运行的时候,强制在第一行添加断点。 这时,会出现“debugger listening on port 5858”的提示。 默认的端口是5858,也可以像这样修改:
node --debug-brk[=3000] app.js
然后,启动node-inspector:
node-inspector
(因为之前的nodejs代码在运行,所以命令行窗口没办法输入新的命令,所以启动node-inspector需要新打开一个命令行窗口来输入) 根据提示中的地址,打开 就可以看到,一个模拟Chrome调试窗口的页面,加载了node中的所有代码,具体的调试方式,就和Chrome一样了。 还有一种方式是在代码中需要添加断点的地方,加入:
debugger;
以下面这种方式运行:
node --debug app.js
这样代码会运行到需要debugger
的地方暂停。
node中进行debug
如果js文件不能在node下运行debug,执行以下步骤:
- 在当前项目下打开终端,运行命令
node --debug-brk Webstorm
然后Ctrl+C
- 在需要debug的文件中,点击右上角带有js的图标,进入edit configurations界面
- 进入后点击左上角+,选择node.js remote debug
- 编辑name以及确保port和步骤1中得到的port一致,点击apply然后点击ok
- 再在终端运行命令
node --debug-brk 需要debug的js文件名
- 在需要debug的js页面设置断点,然后右击运行debug即可
- 完成后出现如下图
如何使用DevTools调试Nodejs运行的Javascript
目前,常用的浏览器IE、Chrome、Firefox都有相应的脚本调试功能。我们先来看IE的:
- 在F12开发人员工具中进行调试
- 打开IE浏览器,按下F12键,就会打开开发人员工具,这是IE内置的开发人员开发工具,方便开发人员对HTML、CSS、Javascript等网页资源进行跟踪调试使用的。
- 如果你打开的时候没有固定在网页底部,可以点击右上角菜单栏中的按钮来完成。
- 我们看到在这个工具窗口里面有几个标签页,分别是:HTML、CSS、控制台、脚本、探查器和网络,点开每一个标签,可以执行相应的任务。
- 在HTML标签窗口中,工具栏中的按钮所执行的操作如下图:
- CSS标签是用来查看样式的;控制台显示网页中JS的各种输出信息,包括错误信息、用户日志等;打开脚本标签页,这里面才是我们想要的内容。
- 我在图中用黄色矩形选中两个控件,左侧的下拉列表用来选择文件,右侧的按钮用来启动调试。当点击启动调试后,调试程序会将窗口最大化,我们在选中的文件中找到需要调试的位置,点击左侧边栏添加断点即可进行调试。
- 当有程序运行到我们的断点处时,就可以进行调试了:
- 在这里,我们可以使用快捷键进行操作,常用的快捷键如下:
F9
:添加/移除 断点F10
:逐过程,即跳过该语句中的方法、表达式等F11
:逐语句调试,即单步调试,会跳入方法、表达式,进行逐语句的跟踪调试
- 在执行过程中,如果我们要执行即时的代码,我们就需要在右侧的窗格中输入代码,按回车即可:
- 如果要执行多行代码,点击运行按钮右侧的双箭头,就会打开多行模式。
- 使用
debugger
关键字进行调试- 这种方法很简单,我们只需要在进行调试的地方加入
debugger
关键字,然后当浏览器运行到这个关键字的时候,就会中断: - 设置以后就可以使用
debugger
关键字进行调试了;经过这样的设置,我们还可以捕获到意外的错误,进行跟踪调试。
- 这种方法很简单,我们只需要在进行调试的地方加入
nodejs 模块开发怎么调试
- 基于Nodejs内建的调试器
- Nodejs提供了一个内建调试器来帮助开发者调试应用程序。想要开启调试器我们需要在代码中加入
debugger
标签,当Nodejs执行到debugger
标签时会自动暂停(debugger
标签相当于在代码中开启一个断点)。代码如下:var path = url.parse(req.url).pathname; debugger; res.writeHead(200, {'Content-Type': 'text/plain'});
- 执行命令:
就可以进入调试模式。node debug example.js
- 在debug模式下,可以使用内建命令如
repl
去评估变量和表达式的值。我们也可以通过help
命令来获取完整的调试命令列表。Commands: run (r), cont (c), next (n), step (s), out (o), backtrace (bt), setBreakpoint (sb), clearBreakpoint (cb), watch, unwatch, watchers, repl, restart, kill, list, scripts, breakpoints, version
- Nodejs提供了一个内建调试器来帮助开发者调试应用程序。想要开启调试器我们需要在代码中加入
- 基于V8插件的调试器
- Nodejs是基于google V8的引擎上构建的,Google为Eclipse提供了一个对应的调试插件。关于如何在Eclipse中安装和调试Nodejs程序就不再重复描述了。唯一要注意的是在默认情况下V8引擎支持的调试模式是本地模式。如果想要开启远程调试的话,我们需要修改Nodejs中的V8源文件:
/deps/v8/src/platform-posix.cc
addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); // INADDR_ANY addr.sin_port = htons(port);
- 然后重新编译Nodejs。
- 提示:
- 用插件来调试nodejs程序,你有时候会遇到什么connect refuse, get version failed等等错误。那么请注意你使用的ip的地址,一般下127.0.0.1的回环地址是都工作的。如果你使用真实的ip地址,请检查防火墙设置。
- Nodejs是基于google V8的引擎上构建的,Google为Eclipse提供了一个对应的调试插件。关于如何在Eclipse中安装和调试Nodejs程序就不再重复描述了。唯一要注意的是在默认情况下V8引擎支持的调试模式是本地模式。如果想要开启远程调试的话,我们需要修改Nodejs中的V8源文件:
- 基于Chrome浏览器的调试器
- 既然我们可以通过V8的调试插件来调试,那是否也可以借用Chrome浏览器的JavaScript调试器来调试呢?
node-inspector
模块提供了这样一种可能。我们需要先通过npm来安装node-inspector
npm install -g node-inspector // -g 导入安装路径到环境变量
node-inspector
是通过websocket方式来转向debug输入输出的。因此,我们在调试前要先启动node-inspector
来监听Nodejs的debug调试端口。- 默认情况下
node-inspector
的端口是8080,可以通过参数--web-port=[port]
来设置端口。在启动node-inspector
之后,我们可以通过--debug
或--debug-brk
来启动nodejs程序。通过在浏览器输入http://[ip address]:8080/debug?port=5858
,我们会得到如下的调试窗口: 这三种方法各自有优缺点,我个人比较欣赏node-inspector
的方式。
- 既然我们可以通过V8的调试插件来调试,那是否也可以借用Chrome浏览器的JavaScript调试器来调试呢?