无法使用节点检查器debugging匿名函数

下面是我尝试使用节点检查器debugging器的简单演示服务器程序:

var http = require('http'); var fs = require('fs'); http.createServer(function(req, res) { res.writeHead(200, { 'Content-Type': 'text/html' }); var html = fs.readFileSync(__dirname + '/index.htm', 'utf8'); var message = 'Hello world...'; html = html.replace('{Message}', message); res.end(html); }).listen(1337, '127.0.0.1'); 

尝试我可能,我不能哄节点检查器设置一个断点(或者,使用debugging器语句)传递给http.createServer(…)函数调用的匿名函数。 我可以在第一行(例如,var http = require …)的第二行和第四行(http.createServer …)设置一个断点,但不在传入的匿名函数中。

首先,我试图拉出匿名函数,并创build一个函数expression式,如下所示:

 var callback = function(req, res) { ... } 

并传递给了

 http.createServer(callback).listen(1337, '127.0.0.1'); 

那也行不通。

最后,我尝试命名这样的function:

 var http = require('http'); var fs = require('fs'); function callback(req, res) { res.writeHead(200, { 'Content-Type': 'text/html' }); var html = fs.readFileSync(__dirname + '/index.htm', 'utf8'); var message = 'Hello world...'; html = html.replace('{Message}', message); res.end(html); } http.createServer(callback).listen(1337, '127.0.0.1'); 

这就像一个魅力!

如果这是节点检查员的固有限制,那么这是一个严重的问题。 我希望有人能给我一个更简单的debugging方法,而不是必须在全球范围内提取匿名函数并命名它们。