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

Node.js使用Formidable包时出现IncomingForm构造函数错误求助

解决Formidable IncomingForm is not a constructor 错误

这个问题核心是Formidable版本与教材写法不兼容,Formidable v3+ 对ES模块的导出结构做了调整,和旧版本(v2及以下)的用法不一样。给你两个可行的解决办法:

办法一:适配Formidable v3+ 的写法

修改你的导入语句为命名导入,直接引入IncomingForm:

import { IncomingForm } from 'formidable';

然后创建表单实例的代码改成:

const form = new IncomingForm();

这是Formidable v3官方推荐的ES模块用法,也是最规范的方式。

如果坚持想用默认导入,也可以这样写(不推荐,但能兼容你的原有代码结构):

import formidable from 'formidable';
const form = new formidable.default.IncomingForm();

办法二:安装与教材匹配的旧版本Formidable

如果你想完全按照教材的代码写法来,不需要修改代码,直接安装Formidable v2.x版本即可:

npm uninstall formidable
npm install formidable@2

安装完成后,你原来的import formidable from 'formidable';和new formidable.IncomingForm()代码就能正常运行了。

注意事项

  • 不要手动修改node_modules里的文件,这种修改会在你重新执行npm install时被覆盖,完全没有意义。
  • Node.js v18.13.0是完全支持ES模块和Formidable各版本的,版本本身没有问题,问题出在Formidable版本和教材写法的差异上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:07:16