0

我正在尝试使用“next-connect”库在 Next.js 中实现 route->middleware->endpoint api 方法。.post()在我将端点添加到下一个连接实例之前,一切都运行良好。

// pages/api/index
import { protect, restrictTo, createUser } from 'api-lib/controllers/authController'
import { getAllUsers } from 'api-lib/controllers/userController'
import all from 'api-lib/middlewares/all';

const route = all() // next-connect instance with options privided

route.use(protect)             // rotect the route
     .use(restrictTo('admin')) // restrict the route to admin
     .get(getAllUsers)

export default route;

然后我添加了 .post() 端点

route.use(protect)             // rotect the route
     .use(restrictTo('admin')) // restrict the route to admin
     .get(getAllUsers)         // ---- works fine until here
     .post(createUser)         // !!! got error

并得到这个错误TypeError: handlers[(i++)] is not a function

createUser当我在另一条路线上测试它时,该功能正常工作。

有什么建议么?会不会是“下一个连接”错误?

4

1 回答 1

0

我发现了这个问题。实际上我是createUser错误地从错误的文件中导入的。

改变了

// pages/api/index
import { protect, restrictTo, createUser } from 'api-lib/controllers/authController'
import { getAllUsers } from 'api-lib/controllers/userController'

// pages/api/index
import { protect, restrictTo } from 'api-lib/controllers/authController'
import { getAllUsers, createUser } from 'api-lib/controllers/userController'
于 2021-09-24T07:54:52.653 回答