在我的NodeJS代码中,我将debugger;
放入了我想暂停的行,正如NodeJS docs
...
saveEvent(event, function(event, message) {
console.log("Event Saved!");
// combine
eAll = eMen.concat(eWomen);
debugger;
models.Person.update({"_id": {"$in": eAll}}, {"eventsAttended": {"$push": event._id}}, function(err, updatedPeople){
if (err) console.log(err);
else {
result.message = message;
result.event = event;
callback(result);
}
})
});
然而,当我运行它(node debug app.js
)时,控制台在到达此行时会显示某些内容,
break in C:\Users\Imray\Projects\DaProj\daproj-backend\db.js:415
414
415 debugger;
416 models.Person.update({"_id": {"$in": eAll}}, {"eventsAttended": {"$push": event._id}}, function(err, updatedPeople){
417 if (err) console.log(err);
但是当我尝试检查当前变量的值时,我收到错误
debug> eAll
ReferenceError: eAll is not defined
at repl:1:2
at Interface.controlEval (_debugger.js:969:21)
at Interface.<anonymous> (repl.js:239:12)
at Interface.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at Interface._ttyWrite (readline.js:760:14)
at ReadStream.onkeypress (readline.js:99:10)
at ReadStream.emit (events.js:98:17)
at emitKey (readline.js:1095:12)
debug>
为什么这不按预期工作?
答案 0 :(得分:1)
我没有使用过这个,但根据文档,你必须在评估任何变量之前执行'repl'命令。
因此,当它在调试器停止时执行'repl'命令然后输入'eAll'。
您绝对应该考虑使用node-inspector进行调试。