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

next-connect报错TypeError: resolver is not a function该如何解决

错误原因

该报错是next-connect配置和Next.js文件路由规则冲突导致的,核心有两个问题:

  1. 你初始化next-connect实例时没有开启路由匹配模式,默认状态下next-connect不会处理.get()等方法传入的路径参数,只接受直接传入处理函数。
  2. 路由路径配置重复:Next.js API路由的路径由文件位置决定,不需要在next-connect的方法中重复写文件对应的路径前缀。

解决步骤

1. 开启next-connect路由匹配能力

修改handler的实现代码,在创建nc实例时新增router: true配置项:

return nc<NextIronRequest, NextApiResponse>({
  router: true, // 新增这行开启路由匹配
  onError: (err, _, res) => {
    error(err)
    res.status(500).end(err.toString())
  },
})

2. 修正路由路径配置

根据你的API文件存放位置调整路径前缀:
如果你的路由定义存放在/pages/api/twitter.ts或者/pages/api/twitter/[...index].ts(catch-all动态路由)文件中,去掉路径中的/twitter前缀即可:

export default handler()
  .get('/generate-auth-link', generateAuthLink)
  .get('/get-verifier-token', getVerifierToken)

3. 可选校验

确认generateAuthLink和getVerifierToken两个处理函数的导出方式正确,是符合(req: NextIronRequest, res: NextApiResponse) => void | Promise<void>格式的函数。

修改完成后重启开发服务,请求/api/twitter/generate-auth-link即可正常返回结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:09:04