Node.js报SyntaxError:Named export 'express' not found如何解决
问题根因
报错SyntaxError: Named export 'express' not found来自UserRoute.js文件的导入语法错误:
- Express包对外仅提供默认导出,不存在名为
express的命名导出,import { express } from "express"的写法无法匹配到对应导出值 - 该文件还存在一个隐藏运行错误:Express路由实例需要通过
express.Router()(大写R开头)创建,原代码写的express.router()(小写r)会在导入问题修复后触发新的报错
修复步骤
- 修改
UserRoute.js中的express导入语句,使用默认导入写法(和index.js中的导入写法保持一致) - 修正路由实例创建的方法名,将小写开头的
router()改为大写开头的Router()
修正后的UserRoute.js完整代码如下:
import express from "express"; import { getUsers } from "../controllers/UserController.js" const router = express.Router(); router.get('/users', getUsers); export default router
额外校验项
由于代码中全程使用ESM的import/export语法,需要确认项目根目录package.json中配置了"type": "module",否则Node.js会默认按CommonJS规范解析文件,触发其他语法报错。所有修改完成后重启Node服务即可正常运行。
内容的提问来源于stack exchange,提问作者Malek Naouara
相关产品推荐
相关产品推荐

