node中调试子进程

现在node.js在单步调试中做的最好的,就要数intellij idea了,但是node在使用cluster的时候,无法开启调试,stackoverflow上有对这个问题的描述与解答(点击这里查看)。但是这里要将的解决方案确实通过增加启动参数控制,摒弃多进程模式来实现调试,比如说在本地测试的时候启动单进程,在运营环境中使用多进程。

node.js中可以读取环境变量,使用方法为process.env.环境变量名,也就是说可以通过下列方式来控制是否启用多进程:

if (process.env.DEBUG_LOCAL == ‘true‘) {
    //单进程代码处理
} else {
    //cluster代码处理
}

代码1.1

剩下的就是在idea中配置环境变量了,点击调试的配置功能,即点击图1.1位置。

图1.1 选择配置

在打开的界面中点击环境变量配置功能按钮

图1.2 配置界面

添加一个环境变量

图1.3 添加环境变量

至此完成配置,点击调试后,就会将当前的代码运行成单进程,在生产环境中不加环境变量启动,则运行到正常的cluster代码中。

时间: 2024-08-30 07:47:05

node中调试子进程的相关文章

在 Chrome 开发者工具中调试 node.js

命令行工具 devtool ,它可以在 Chrome 的开发者工具中运行 Node.js 程序. 下面的记录显示了在一个 HTTP 服务器中设置断点的情况. 该工具基于 Electron 将 Node.js 和 Chromium 的功能融合在了一起.它的目的在于为调试.分析和开发 Node.js 应用程序提供一个简单的界面. 你可以使用 npm 来安装它: npm install -g devtool 在某种程度上,我们可以用它来作为 node shell 命令的替代品.例如,我们可以这样打开一

Node系列——Node中的异常处理。

1.对异常错误的理解 异常错误应该被分为两种情况:操作失败和程序员失误 1.1.操作失败 这是正确编写的程序在运行时产生的错误.它并不是程序的Bug,反而经常是其它问题. 例如:系统本身(内存不足或者打开文件数过多),系统配置(没有到达远程主机的路由),网络问题(端口挂起),远程服务(500错误,连接失败).具体情况如下: 连接不到服务器 无法解析主机名 无效的用户输入 请求超时 服务器返回500 套接字被挂起 系统内存不足 1.2.程序员失误 这是程序里的Bug.这些错误往往可以在调试阶段通过

在 Chrome 中调试 Android 浏览器

最近需要使用 Chrome Developer Tools 调试 Android 浏览器,但是官方指南并不是很好使,经过一番折腾,终于调试成功了,在此把经验分享给需要的朋友. Chrome Developer Tools 是前端工程师必不可少的工具,它极大的提高了我们的开发调试效率.在移动开发的时代,我们也必须掌握手机浏览器在 Chrome 中调试的方法.本篇仅介绍 Android. 环境 不同的环境可能存在一些差异,我的环境是: Windows 10 电脑 Chrome 50.0.2661.7

node.js调试

不用每次都重启服务的supervisor 使用过PHP的同学肯定都清楚,修改了某个脚本文件后,只要刷新页面服务器就会加载新的内容,但是node.js在第一次引用到某个文件解析后会 将其放入内存,下次访问的时候直接在内存中获取,以提高效率,但是这对我们开发造成一定困扰,修改了某个module后只能重启服务器后才能生效,调试起 来效率还是很低的. 于是乎node.js中有了supervisor插件帮我们坚实文件改动,自动重启服务器,supervisor是node.js的一个包,安装起来很简单,使用n

深入理解jQuery、Angular、node中的Promise

最初遇到Promise是在jQuery中,在jQuery1.5版本中引入了Deferred Object,这个异步队列模块用于实现异步任务和回调函数的解耦.为ajax模块.队列模块.ready事件提供基础功能.在用jQuery操作DOM的时候对Promise的使用欲不够强烈,最近学习node和Angular,需要用js写业务逻辑和数据操作代码的时候这种场景需求就出来了.一般来说事件适合在交互场景中运用,因为用户的行为本来就是分散的,而promise这样的流程控制适合在后台逻辑中处理业务. //j

node的调试

1 /* 2 * 在node中,提供了一个可以通过简单TCP协议来访问的调试器.可以使用node debug 文件名,当调试器可以使用之后,命令行窗口界面中出现一个debugger命令提示符.后跟ok文字.代表调试器已经可以使用了. 3 * 看需要调试的代码 4 * */ 5 6 var name="思思博士"; 7 var age=24; 8 var tall=168; 9 var address="安徽-->合肥"; 10 function gys(){

nodejs学习笔记Node.js 调试命令

3.4  调试        47 下面是一个简单的例子: $ node debug debug.js < debugger listening on port 5858 connecting... ok break in /home/byvoid/debug.js:11 var a = 1; 2 var b = 'world'; 3 var c = function (x) { debug> n break in /home/byvoid/debug.js:21 var a = 1; 2 v

Node中的全局对象和全局变量

这个文章主要是对上一个文章的扩充 util对象 在Node环境已经安装好的前提下,使用util中已经定义的方法,只需要require('util')即可: uti是utility(功效,用途)的缩写.这util模块的设计主要是为了满足Node内部API的需求.下面来介绍两个比较重要的: 1.inherits 这个方法实现了原型链之间的继承(即JavaScript的继承) var util = require('util'); function base(){ this.name = 'helio

【转】node.exe调试JavaScript代码

node.exe调试JavaScript代码 目的: Console.log可以打印一些信息,光有log还不够,当程序出现问题时通过log可以定位到错误位置,但是当我们想查看错误现场的变量时,log就无能为力了,一般情况下我们不会把所有的变量都打印出来.此时就需要断点的功能了,在程序里边打上断点,直接定位到错误位置,分析错误现场确认错误原因. 三种模式: nodejs内部提供一个debug机制,可以让程序进入debug模式,供开发者一步一步分析代码发现问题. 共有3中启动参数可以让程序进入deb