next-connect TypeError: handlers[(i++)] не является функцией

Я пытаюсь реализовать подход route-> middleware-> endpoint api в Next.js, используя библиотеку next-connect. Все работало нормально, пока я не добавил .post() конечная точка к Insance следующего подключения.

      // 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++)] не является функцией.

В createUser функция работала правильно, когда я тестировал ее на другом маршруте.

Какие-либо предложения? Может быть, это ошибка «следующего подключения»?

1 ответ

Я нашел проблему. На самом деле я импортировал 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'
Другие вопросы по тегам