ES6 Import引入Express报错:express is not a function 求助
解决"express is not a function"报错问题
问题原因
你安装的Express版本为^2.5.11,这是一个极其老旧的版本——发布于2010年左右,它既不支持ES6模块的import语法,导出结构也与现代Express完全不同,因此调用express()时会触发"express is not a function"错误。
解决方法
方案一:升级到最新版Express(推荐)
这是最稳妥的解决方式,新版本不仅支持ES6模块,还修复了大量安全漏洞和功能缺陷:
- 卸载旧版本:
npm uninstall express
- 安装最新稳定版:
npm install express
- 保持package.json中的
"type": "module"配置不变,你的index.js代码无需修改,直接执行node index.js即可正常启动服务器。
方案二:适配旧版本Express(不推荐)
若因特殊需求必须使用旧版本,需改用CommonJS规范:
- 删除package.json中的
"type": "module"配置; - 修改index.js代码为CommonJS格式:
const express = require('express'); const app = express(); const port = 3000; app.listen(port, () => { console.log(`Server is on port ${port}`); })
注意:旧版本Express存在大量未修复的安全问题,绝对不建议在生产环境使用。
内容的提问来源于stack exchange,提问作者Aditi Baghel
相关产品推荐
相关产品推荐

