启用 socket.io 后无法记录请求

can't log requests when socket.io enabled

我正在尝试调试 socket.io 问题。为了弄清楚发生了什么,我想记录所有请求,所以我安装了 morgan。

var express = require('express');
var app = express();    
app.use(require('morgan')('dev'));
var path = require('path');    
var http = require('http').Server(app);
var io = require('socket.io')(http);  // this line prevents morgan from logging

日志记录工作正常,直到我需要 socket.io- 最后一行显然阻止了摩根看到所有请求。

为什么 socket.io 阻止堆栈的其余部分看到请求?

编辑:

一些解释here:显然socket.io太冗长了,默认情况下调试是关闭的。如果我在我的环境中设置 运行 和 DEBUG=*,我会得到更多信息。

虽然这对堆栈的其余部分来说似乎相当不友好。

是的 DEBUG=* 可能过于冗长,但调试模块还允许您指定逗号分隔的通配符模式列表。一些例子:

DEBUG=socket.io*
DEBUG=socket.io*,engine:*
DEBUG=socket.io:socket,engine:socket