使用Node fs.createWriteStream生成日志,但它正在写入重复的日志



我使用的是带有express框架的节点0.6.19。我在日志中看到了一些奇怪的事情。首先,我为(createWriteStream)传入请求创建了一个日志。我使用了express语法,通过将请求管道传输到日志中

var logFile = fs.createWriteStream('log.log', {
    "flags": "a"
});
app.configure(function() {
    app.use(express.logger({
      stream: logFile
    }));
    app.use(express.bodyParser());
    app.use(express.cookieParser());
    app.use(express.methodOverride());
    return app.use(app.router);
});

当我点击一条快速路线时,似乎有传入请求的副本,比如:

app.get('/', routes.index);

其次,在我的一些路由上,我在数据库中进行用户查找,并通过相同的createWriteStream方法将用户id记录到另一个文件中。当我做时

logFile.write(user_id + 'n');

我得到重复的user_id。查询本身没有问题,它告诉我createWriteStream方法发生了什么。

如果使用浏览器调用应用程序,则可能会由于favicon请求而获得重复输出。您可以通过使用fiddler或其他HTTP调试代理拦截请求来轻松验证这一点,具体取决于您的操作系统。

最新更新