Javascript 如何有条件地禁止登录Express(或Connect)?

Javascript 如何有条件地禁止登录Express(或Connect)?,javascript,node.js,express,Javascript,Node.js,Express,当使用作为Connect(以及Express)的一部分的logger中间件时,我希望能够禁用对某些请求的日志记录,比如在响应上设置一个标志之类的 我设法做到了这一点,我说: res.doNotLog = true; 然后,在logger.js(连接模块的一部分)中,我将 在正确的地方。但我当然不想修改模块本身的代码。有没有什么方法可以让同样的事情发生而不必破解模块 编辑: 这起到了作用: var app = _express.createServer(); // set 'hello' ro

当使用作为Connect(以及Express)的一部分的logger中间件时,我希望能够禁用对某些请求的日志记录,比如在响应上设置一个标志之类的

我设法做到了这一点,我说:

res.doNotLog = true;
然后,在logger.js(连接模块的一部分)中,我将

在正确的地方。但我当然不想修改模块本身的代码。有没有什么方法可以让同样的事情发生而不必破解模块

编辑:

这起到了作用:

var app = _express.createServer();

// set 'hello' routing...note that this is before middleware 
// so it won't be logged
app.get('/sayhello', function(req, res) {res.send("hey");});

// configure middleware: logging, static file serving
app.configure(function() {
    app.use(_express.logger());
    app.use(_express.static(__dirname + '/www'));
  });

// set 'goodbye' routing...note that this is after middleware 
// so it will be logged
app.get('/saygoodbye', function(req, res) {res.send("later...");});

最明显的是将这些请求的处理程序放在记录器之前。这在纯连接中很容易实现,但不知道如何在Express中实现,因为许多路由器代码在路由之间共享。如果只有少数这样的请求,您可以在堆栈中更早地处理它们连接方式,而不是
app.router

如果您有时间,向我们展示您是如何处理的。这将使这个问题成为我们在其他人遇到类似问题时可以向他们指出的问题。另外,虽然我对如何实现有一个大致的想法,但您的实现可能会更好。当然,完成了。我想诀窍是将app.configure()与_express.createServer()分开……但在我的中它们已经分开了,所以只需将调用移动到app.get()。:)@rob答案应该在答案中,而不是在问题中。这对我不起作用,似乎只记录最初的请求。
var app = _express.createServer();

// set 'hello' routing...note that this is before middleware 
// so it won't be logged
app.get('/sayhello', function(req, res) {res.send("hey");});

// configure middleware: logging, static file serving
app.configure(function() {
    app.use(_express.logger());
    app.use(_express.static(__dirname + '/www'));
  });

// set 'goodbye' routing...note that this is after middleware 
// so it will be logged
app.get('/saygoodbye', function(req, res) {res.send("later...");});