Tag: debugging

将EventEmitter移到debugging器中的侦听器

Node有一个类EventEmitter ,它是node.js和电子编程的一个非常常见的东西。 不幸的是,它是一个PITA来debugging。 想象一下这样的代码 import EventEmitter from `events`; const emitter = new EventEmitter(); emitter.on('foobar', handleFoobar); emitter.emit('foobar', 'foo', 'bar'); function handleFoobar(..args) { console.log(…args); } 现在我想在debugging器中逐步完成代码。 当然,在这个小例子中,我可以在handleFoobar上放置一个断点,但是在真正的代码中,我只是希望能够遍历代码,当我得到一些someEmitter.emit我希望能够沿着“步入听众“ 。 不幸的是没有这样的function存在AFAIK。 EventEmitter的实现相当复杂,因此join到听众需要步进约20-25次。 你可以在所有的出口点设置断点,但是至less有6个断点,当你想把它们全部打开/closures的时候也是很烦人的。 有没有其他创造性的解决scheme来有效地实现像“步入监听器”的东西,当someEmitter.emit线? 想到一个解决scheme就是用简单的实现来replaceevents.js 。 没有域支持和使用ES6function,它可能是更小的实现像 EventEmitter.prototype.emit(type, …args) { const listeners = this._listeners[type].slice(); listeners.forEach(listener => { listener(…args); } return listeners > 0; } 我想我也可以修补到原型如果process.env.NODE_ENV === 'development' 还有其他更通用的解决scheme吗? 就像也许是一个debugging器function,我可以select代码,永远不会直接进入,但在debugging器中select进入它的出口点?

即使在非常简单的设置下,也无法在WebStorm中达到任何断点

即使在一个非常简单的设置,我无法在我的代码打破任何断点。 看附件截图。 点击“Debug”main.js“”后,执行不会中断。

我怎样才能用节点检查器debuggingnodejs后端?

我试图debugging我的后端,我不知道如果我正在做这个正确的方法。 我已经设置了如下的debugging: 节点6.9.1和节点检查员0.12.8 打开命令提示符并运行以下命令: node-inspector –web-port=3030 (server app port) 打开另一个命令提示符并运行以下命令: node –inspect –debug-brk server.js 在第二个命令提示符login屏幕上浏览到给定的URL 按F8使服务器运行 最终放了一些其他的断点 在另一个选项卡上浏览到您的应用程序(1-中定义的地址和端口) 请参阅第5步中定义的断点上的服务器执行停止。 现在,当我运行node –inspect app.js和一切看起来不错。 我可以debuggingapp.js中的第一个开始。 但是如果我想用POSTMANdebugging一个端点,我得到错误“不能POST / api / trainingsWeek”。 如果我不debugging,端点工作。 我需要另外一个地址吗? 或者比POSTMAN还有其他工具? node –inspect app.js和node-debug之间有什么区别? GitHub问题 UPDATE 这是我的愚蠢的错误:P这是解决scheme: https : //github.com/node-inspector/node-inspector/issues/907#issuecomment-280620108

VS Code nodej远程debugging

我试图在node.js(7.1.0)项目上使用VS Codebuild立远程debugging。 我用pm2启动我的开发应用程序: { "apps": [{ "name": "my-app-dev", "script": "app.js", "watch": true, "node_args": ["–inspect=9229", "–nolazy"], "ignore_watch": ["assets/images/", ".tmp/", ".git/"], "watch_options": { "usePolling": true } }] } 这是.vscode / launch.json文件: { "version": "0.2.0", "configurations": [ { "type": "node2", "request": "attach", "name": "attach", "port": 9229, "address": "my.app.local", "restart": true, "diagnosticLogging": true, "sourceMaps": false } ] } 当我启动debugging器时,我成功地连接了附加的Debugger […]

使用Passport.js的login系统始终执行“failureRedirect”(nodejs)

我正在做一个教程,我卡在login区域。 当我使用Passport.jslogin时,它始终在validation中执行“failureRedirect”。 尝试debuggingreplacerouter.post('login')路由后,我收到以下消息: 错误:null用户:false信息:{“message”:“Missing credentials”} 在阅读一些论坛后,我认为这个问题可能与body-parser有关。 我一直在试图解决这个问题,但我还没有成功。 我会感激最有经验的node.js程序员的帮助。 该项目的结构是:app.js routes:users.js models:user.js user.js的 var express = require('express'); var router = express.Router(); var multer = require('multer'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var bodyParser = require('body-parser'); var User = require('../models/user'); var upload = multer({ dest: './uploads' }); // create application/json parser var jsonParser = bodyParser.json(); […]

失败将RemoteDev监视器注入React Nativedebugging器

我正在使用React Native应用程序,并突然看到这个: FAIL Inject RemoteDev monitor into React Native debugger, the file 'react-native\local-cli\server\util\debugger.html' not found. 当我运行npm install 。 它曾经是好的。 我检查了文件夹AppData\Roaming\npm\node_modules\react-native\local-cli\server\util并且debugger.html文件在那里。 这是我的package.json脚本: "postinstall": "remotedev-debugger" 我怎样才能解决这个问题?

vue.js与vue-multilanguage我的webpack编译没有被翻译正确

我的webpack编译没有被转译成正确的JS。 它写道 exports default MultiLanguage而不是module.exports = { MultiLanguage: MultiLanguage}; 我的.bablerc { "presets": ["es2015", "stage-0"], "plugins": ["transform-runtime"] } 我的package.json { "name": "myapp", "version": "0.0.1", "description": "My app", "dependencies": { "bootstrap": "^3.3.7", "vue": "^2.4.2", "vue-multilanguage": "^2.1.1" }, "devDependencies": { "babel-cli": "^6.24.1", "babel-core": "^6.25.0", "babel-loader": "^6.4.1", "babel-plugin-transform-runtime": "^6.1.2", "babel-preset-es2015": "^6.24.1", "babel-preset-stage-0": "^6.1.2", "babel-runtime": "^5.8.0", "webpack": "^1.15.0" }, "author": […]

NodeJS远程debugging与Docker

已经过了两天了,我仍然无法摆脱这个应该变成简单的事情! 我要: 创build一个nodejs docker swarm服务并在debugging模式下运行nodejs代码 将debugging器端口公开给主机 能够从主机连接到debugging器 重现问题的最简单的步骤是: root@host docker service create –name dbg-nodejs –publish 4444:4444 node sleep 10d root@host containerID=$(docker container ls –filter name=dbg-nodejs | awk 'FNR == 2 {print $1}') ### find the containerId root@host docker exec -d $containerID /bin/bash -c "(echo \"console.log('\n\n\nHello from NodeJS\n\n\n');\" > /usr/test-dbg.js) && node –inspect-brk=4444 /usr/test-dbg.js" root@host docker […]

如何使用docker-compose.debug.yml来debugging在docker中运行的节点?

我已经使用VSdocker扩展来创builddocker文件。 但是我不知道使用docker-compose.debug.yml来debugging我的代码的“正确”方式是什么,例如,如何设置我的env。 所以我可以打F5和所有的魔法发生。 我做了一个方法来debugging我的代码。 首先在terminal中运行docker-compose -f docker-compose.debug.yml 。 然后使用In-container Node Development:Visual Studio Code中的launch.json将其附加到docker中的节点上。 但是我认为Code可能会提供一种简化debuggingstream程的简单方法。

V8快照二进制文件/debugging的规格

我偶然发现NW,它能够加载“编译的JavaScript二进制文件”。 进一步阅读后(首先我认为这将只是一些缩小的JavaScript)我发现,文档是在谈论实际的二进制文件。 事实certificate,V8可以build立一个加载的JS源代码的快照,并将其转储到一个文件,然后可以将其加载回内存。 https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source-code-with-v8-snapshot 有没有关于这些二进制文件结构的规范? 有没有一种方法可以在反汇编器中加载这样的二进制文件(比如说IDA Pro)?