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

使用next-connect报TypeError默认导出非函数错误如何解决

报错原因

该报错由next-connect版本不兼容导致:你参考的教程基于v0.x版本的next-connect编写,该版本支持默认导出;而你本地安装的是v1.0及以上的新版本,新版本重构了整体API,移除了默认导出规则,沿用旧版导入写法就会触发“导入对象不是函数”的类型错误。

修复方法

二选一即可:

  • 适配v1.x新版本写法(长期使用推荐)
    调整导入、初始化、导出的逻辑,匹配新版API规范,修改后完整代码如下:
    // 替换原有的默认导入为命名导入
    import { createRouter } from 'next-connect';
    import Product from '../../../models/Product';
    import db from '../../../utils/db';
    
    // 替换原有的nc()初始化方式
    const router = createRouter();
    
    router.get(async (req, res) => {
      await db.connect();
      const products = await Product.find({});
      await db.disconnect();
      res.send(products);
    });
    
    // 新版需要调用.handler()方法生成最终的请求处理函数导出
    export default router.handler({
      // 可按需配置错误处理、路径不匹配处理逻辑
      onError: (err, req, res) => {
        res.status(500).end(err.message);
      },
      onNoMatch: (req, res) => {
        res.status(404).end("Route not found");
      }
    });
    
  • 降级到老版本和教程对齐
    如果不想修改现有代码,直接将依赖降级到教程使用的v0.12.2版本即可,执行对应包管理工具的安装命令:
    # npm
    npm install next-connect@0.12.2
    
    # yarn
    yarn add next-connect@0.12.2
    
    # pnpm
    pnpm add next-connect@0.12.2
    
    安装完成后重启Next.js开发服务,原有代码无需改动即可正常运行。

提示:修改依赖或代码后必须重启开发服务,清除构建缓存才能生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:09:24