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

使用next-connect v1.0.0-next.4连接MongoDB遇TypeError求助

解决next-connect v1.0.0-next.4的TypeError问题

你的错误是因为next-connect从v1版本开始改用命名导出,不再提供默认导出,原来的import nc from "next-connect"写法会导致nc是undefined,调用nc()就触发is not a function错误。

直接按下面的步骤修改代码即可:

  1. 修改导入语句,使用命名导入createRouter:
import DbConnect from "@/utilis/DbConnect";
import { createRouter } from "next-connect"; // 替换原来的import nc from "next-connect"
import Service from "@/models/Service";
  1. 用createRouter()替代原来的nc()初始化路由:
const handler = createRouter();

修改后的完整代码:

import DbConnect from "@/utilis/DbConnect";
import { createRouter } from "next-connect";
import Service from "@/models/Service";
 

DbConnect();

const handler = createRouter();

handler.get(async (req, res) => {
  try {
    const services = await Service.find({});
    res.status(200).json(services);
  } catch (error) {
    res.status(500).json({ message: "Error fetching services" });
  }
});

handler.post(async (req, res) => {
  const { title, details, isActive } = req.body;

  const newService = new Service({ title, details, isActive });

  try {
    await newService.save();
    res.status(201).json({ message: "Service added successfully" });
  } catch (error) {
    res.status(500).json({ message: "Error adding service" });
  }
});

export default handler;

补充:next-connect v1版本还有部分API调整,比如全局错误处理需要通过createRouter({ onError: ... })配置,但你当前的接口逻辑用上面的修改就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 14:52:50