You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用rfs.createStream时报错Cannot read property 'createStream' of undefined如何解决

配置服务日志报错解决方案

报错原因

TypeError: Cannot read property 'createStream' of undefined 报错核心是代码中调用的rfs对象未被正确初始化,同时代码存在语法参数错误:

  • 未导入rotating-file-stream模块就直接调用rfs.createStream方法
  • createStream方法的第二个配置参数缺少对象大括号包裹,不符合语法规范

解决步骤

  • 首先安装所需依赖,在项目目录执行命令:
    npm install morgan rotating-file-stream express
  • 修正代码的导入逻辑和参数写法,完整可运行代码如下:
// 提前导入所有依赖
const express = require('express');
const app = express();
const morgan = require('morgan');
const rfs = require('rotating-file-stream');
const path = require('path');
const fs = require('fs');

// 自动创建日志存储目录,避免目录不存在引发的二次报错
const logDir = path.join(__dirname, 'public', 'logs');
if (!fs.existsSync(logDir)) {
  fs.mkdirSync(logDir, { recursive: true });
}

// 修正createStream参数写法,第二个配置项用大括号包裹
const rfsStream = rfs.createStream('server.log', {
  size: '10M',
  interval: '1d',
  path: logDir
});

app.use(morgan('combined', { stream: rfsStream }));

// 测试服务启动
app.listen(3000, () => {
  console.log('服务启动成功,端口3000');
});

验证方法:启动服务后访问任意接口,查看public/logs目录下是否生成server.log日志文件,且接口请求记录正常写入即为配置成功。

内容的提问来源于stack exchange,提问作者La Vie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:06:07