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

Express API开发报错:如何解决模块无default导出的SyntaxError?

解决ES模块导入导出不匹配的错误

错误原因

你在pedidos.mjs中使用了命名导出(export const pedidosRoutes = router),但在index.mjs中用了默认导入(import pedidosRoutes from './routes/pedidos.mjs'),两者不匹配导致报错。

解决方案(二选一即可)

方案1:将pedidos.mjs改为默认导出

修改pedidos.mjs的导出语句,把命名导出改成默认导出:

import { Router } from "express";
import { ACCEPTED_ORIGINS } from "../middlewares/cors.mjs";

const router = Router()
export default router // 改为默认导出

router.get('/', (req, res) => {
    return res.json({ "id": "1" })
})

或者保留pedidosRoutes变量,将其作为默认值导出:

// ... 其他代码不变
export default pedidosRoutes

方案2:将index.mjs改为命名导入

保持pedidos.mjs不变,修改index.mjs的导入语句,使用命名导入(用大括号包裹变量名):

import express from 'express'
import { pedidosRoutes } from './routes/pedidos.mjs' // 添加大括号

// ... 其他代码

额外需要修正的问题

  1. index.mjs中app.use(json())会报错,因为json方法属于express模块,需要改为:
app.use(express.json())
  1. 路由挂载路径缺少开头的斜杠,app.use('pedidos', pedidosRoutes)应改为:
app.use('/pedidos', pedidosRoutes)

否则访问路由时会出现路径拼接错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:22:41