导入refresh控制器报错:Route.get()需回调函数却获[object Undefined]
解决Route.get() requires a callback function but got a [object Undefined]问题
这个报错的核心原因是你绑定到/refresh路由的refresh控制器为undefined,大概率是导出或导入环节出了问题,按以下步骤排查:
检查authController.ts中refresh的导出
确保使用正确的具名导出语法,比如:// authController.ts export const refresh = (req, res) => { // 你的刷新令牌逻辑代码 };不要遗漏
export关键字,也不要写错导出名称(比如控制器里导出refreshToken,路由里却用refresh)。如果是类形式的控制器,要确保方法是静态的或已正确实例化导出:export class AuthController { static refresh(req, res) { // 逻辑代码 } }检查authRoute中的导入和路由绑定
确认导入的变量名和控制器导出的完全一致,绑定路由时不要写错:// authRoute.ts import { Router } from 'express'; import { refresh } from './authController'; // 此处refresh需与控制器导出名一致 const router = Router(); router.get('/refresh', refresh); // 确保此处refresh不是undefined可以在路由文件里加一行
console.log(refresh),启动服务后查看控制台输出,如果结果是undefined,说明导入环节肯定存在问题。检查refresh控制器的函数定义
排查函数体内是否有语法错误(比如未闭合的括号、缺失的逗号等),语法错误会导致函数定义失败,最终导出的内容为undefined。
内容的提问来源于stack exchange,提问作者Mouez MT
相关产品推荐
相关产品推荐

