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

Node.js v19.8.1使用Console模块报错TypeError: Console is not a constructor

解决Node.js Console模块构造函数报错问题

问题原因

你遇到的TypeError: Console is not a constructor错误,核心原因是ES模块导入方式错误,同时代码遗漏了fs模块的导入。

修正步骤

1. 修正ES模块导入语句

node:console模块的Console是命名导出成员,并非默认导出,不能直接用import Console from 'node:console';,需改为命名导入:

import { Console } from 'node:console';
import fs from 'node:fs'; // 必须导入fs模块才能使用文件流

2. 确保CommonJS环境的完整性

CommonJS的导入语法本身正确,但同样需要先导入fs模块:

const { Console } = require('node:console');
const fs = require('node:fs'); // 必须导入fs模块才能使用文件流

完整可运行代码示例

ES模块(需在package.json中设置"type": "module")

import { Console } from 'node:console';
import fs from 'node:fs';

const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');

const logger = new Console({ stdout: output, stderr: errorOutput });

const count = 5;
logger.log('count: %d', count);

CommonJS

const { Console } = require('node:console');
const fs = require('node:fs');

const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');

const logger = new Console({ stdout: output, stderr: errorOutput });

const count = 5;
logger.log('count: %d', count);

补充说明

  • 全局console是Node.js自动注入的实例,但自定义Console实例必须严格遵循模块导出规则导入构造函数。
  • 运行代码前需确保当前目录有写入权限,否则createWriteStream会抛出权限错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:08:14