在 Chrome 中,您可以转到chrome://inspect进入调试页面。火狐浏览器有这样的东西吗?

没关系.这不工作的原因:我忘了,meteor reset所以debugger也没有机会停下来.咄!
更多信息:我在Mason Chang的回答中使用了相关问题的方法,而不是kill -s USR1 [proc_id](我可以看到脚本,但无法在startup()函数中停止).另外,我正在使用陨石.
我正在尝试使用node-inspector 调试Meteor服务器端(即下)的Meteor.startup(function())代码/server,我已经阅读了这个问题,并按照更改的答案run.js,但不知何故,我自己的脚本为启动功能未显示在Chrome的脚本部分中.
如何在此处查看我的代码并设置断点并停在这些点?顺便说一下,Meteor_debug()不会向stdout,stderr或node-inspector浏览器控制台输出任何内容.我也试过console.log()但没有用.如何在Meteor服务器端启用日志记录?
如果重要,我在auth分支机构.
这里的代码非常简单(/server/bootstrap.js):
Meteor.startup(function () {
if (Logs.find().count() === 0) {
var data = [/*...some data...*/];
var timestamp = (new Date()).getTime();
Meteor._debug("timestamp: "+timestamp+", data.len: " + data.length);
debugger;
for (var i = 0; i < data.length; i++) {
data[i].timestamp = timestamp++;
var entry_id = Logs.insert(data[i]);
Meteor._debug("entry_id: "+ entry_id);
}
}
});
Run Code Online (Sandbox Code Playgroud) debugging serverside-javascript node.js node-inspector meteor
我已将我的项目从4.2.2更新到Node 6.0.0.
我发现node-inspector不会工作并在一段时间后导致控制台日志中的"内部错误:非法访问"(每个新的调试会话都不同).
当我切换回4.2.2时,一切正常.
如何配置node-inspector使其与Node 6.0.0一起使用?
我想知道如何直接从(windows或linux)命令行启动"打开专用的DevTools for Node",而不使用chrome://inspecturl然后Open dedicated DevTools for Node按钮?
我的目标是为node.js自动运行调试器:
launchDedicatedDevToolsForNode();
require('inspector').open(null, null, true); // sync
debugger;
Run Code Online (Sandbox Code Playgroud)
注意:
基础命令,位于"打开专用的DevTools for Node"链接的点击处理程序后面是:
chrome.send("open-node-frontend")
Run Code Online (Sandbox Code Playgroud) 我启动了我的节点应用程序node index.js并收到以下消息:
(node:10128) UnhandledPromiseRejectionWarning: TypeError: e.reduce is not a function
at Module.te (C:\Projects\myproject\node_modules\tronweb\dist\TronWeb.node.js:1:9236)
现在我对发生的事情很感兴趣。我见过有映射文件TronWeb.node.js.map的tronweb\dist目录。我再次开始使用--inspect并打开了 chrome 开发工具。但是在控制台中,我看到了完全相同的消息。
使用node-inspector,我无法在以下node.js代码中设置断点.(内容main.js)
(function() {
require('underscore');
var doSomething = function(callback) {
callback('doSomething Finished');
}
doSomething(function(x) {
console.log(x);
});
}).call(this);
Run Code Online (Sandbox Code Playgroud)
我可以轻松地在第2行,第4行或第8行设置断点,但无论我怎么努力,调试器都不会让我在第5行或第9行设置断点.要清楚,我正在使用以下命令来运行node-inspector
node --debug-brk main.js
node-inspector
Run Code Online (Sandbox Code Playgroud)
我也尝试在网络风暴中进行调试,但问题仍然存在.如果我删除该行require('underscore');,那么问题会立即消失,我可以再次在函数体内设置断点.如果我删除最外面的闭包函数,问题也会消失.似乎require文件级别关闭之间的交互正在搞乱节点调试功能.有没有人自己经历过这个问题和/或知道能够打破功能体内的任何变通方法?
编辑:我的节点js版本
Tony:~ $ node --version
v0.10.12
Tony:~ $
Run Code Online (Sandbox Code Playgroud) 我试图通过运行它来节点检查器来调试我的gulp taks
node-debug $(which gulp) build
Run Code Online (Sandbox Code Playgroud)
这是有效的,除了我的Gulpfile不是,.js但.coffee由于某种原因它开始挂起差不多一分钟说:
需要外部模块咖啡脚本/注册
我正常运行它并不需要很长时间,如果我使用Gulpfile.js它几乎立即启动节点检查器.当我使用Gulpfile.coffee时为什么需要太长时间?
这不是什么大问题,但有点烦人
我已经看到很多关于调试Node/Express应用程序的问题,但是,它似乎是节点Web应用程序,而不是RESTful服务器.
我已经构建了一个简单的服务器,它在使用命令启动服务器时工作正常node server.js.我可以使用Postman或其他一些工具来调用GET/POST请求.
安装node-inspector模块后,当我使用命令启动节点检查器调试时node-debug server.js,它会在http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858检查器窗口显示一个网页.
然后,我使用postman再次调用请求(之前已成功调用),但它向我显示404 error:Cannot GET /api/v1/user/login.
如何向调试服务器发出请求?
我在node.js做我的宝贝步骤,我正在尝试理解沙盒机制.
目前我使用的是节点v4.0.0和node-inspector v0.12.3.
我已经安装了gf3/sandbox模块并使用这个简单的代码运行它:
var s = new Sandbox();
s.run('1 + 1 + " apples"',function(output) {
console.log(output.result);
});
Run Code Online (Sandbox Code Playgroud)
为了便于调试,我还在sandbox.js文件中注释了超时功能:
// timer = setTimeout(function() {
// self.child.stdout.removeListener('output', output);
// stdout = JSON.stringify({ result: 'TimeoutError', console: [] });
// self.child.kill('SIGKILL');
// }, self.options.timeout);
Run Code Online (Sandbox Code Playgroud)
问题是调试不会破坏任何行代码shovel.js,并且我100%确定模块正在使用其代码.
这是为什么 ?我可以做些什么来调试shovel.js?
//Initializing session
app.use(session({
secret: 'keyboard cat',
resave: true,
saveUninitialized: true
//cookie: { secure: true }
}));
Run Code Online (Sandbox Code Playgroud)
我正在创建购物车并遇到问题,我在会话中设置购物车对象
req.session.cart = [];
Run Code Online (Sandbox Code Playgroud)
//然后
req.session.cart.push({
title : p.title,
price : p.price,
image : '/static/Product_images/'+p._id+'/'+p.image,
quantity:quantity,
subtotal : p.price
});
Run Code Online (Sandbox Code Playgroud)
之后我尝试安慰那个,我在其中获取了包含购物车对象的会话变量,但之后我尝试将其设置app.locals.cart为与ejs一起使用,尝试从快递模块的get方法中获取req.session但是req.session.cart给出了undefined.
app.use(require('connect-flash')());
app.use(function (req, res, next) {
res.locals.messages = require('express-messages')(req, res);
// console.log("New cart variable");
//console.log(req.session);
//console.log(req.locals);
//console.log(req.app.locals.cart);
if(req.session.cart!=="undefined"){
app.locals.cart=[];
app.locals.cart = req.session.cart ;
}
next();
});
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么会话变量丢失了cart对象
在经历了StackOverflow中的一些问题后,我发现没有什么可以解决我的困境.所以我决定停止使用简单的console.log而是我决定使用nodejs检查器并且我安装了我运行
node --inspect app.js
但我遇到的问题是它限制了对app.js的访问权限,添加购物车功能在routes/cart.js中
我想使用nodejs检查器模块跟踪请求流,并找出每次从会话变量中删除cart变量的原因
所以我的问题分为两个部分,第一部分: -为什么sources文件夹只显示app.js而不是像这个简单的教程中的整个项目
我没有得到项目和文件在其中设置调试点和源只有app.js作为默认加载源
第二部分 …
node-inspector ×10
node.js ×9
debugging ×5
javascript ×3
coffeescript ×1
command-line ×1
express ×1
firefox ×1
gulp ×1
inspect ×1
meteor ×1
requirejs ×1
rest ×1
sandbox ×1
webstorm ×1