Следующая структура папок утилиты JS — API

#api #next.js

#API #next.js

Вопрос:

Я использую Next JS и маршруты api для создания своих API. У меня есть 2 вопроса, если кто-нибудь может ответить.

  1. Если я хочу использовать служебную функцию или глобальные постоянные переменные, которые мне нужно включить в несколько файлов api, где лучше всего их хранить? И импортировать их, используя относительные пути?

  2. Есть ли пример следующего проекта JS, который не является просто вашим учебным пособием по базовым маршрутам api для изучения структур папок?

Ответ №1:

Вы можете сохранить свои функции util в папке utils в корне папки вашего проекта.

 |-root
  |-components
    |-Navbar.js
    |-Footer.js
  |-styles
    |-global.css 
    |-navbar.module.css   
    |-footer.module.css        
  |-pages
    |-api
      |-users.js
    |-index.js
  |-utils
    |- dbConnect.js
  

Допустим, вы хотите импортировать dbConnect.js от pages/api/user.js

  • Относительный импорт:

import dbConnect from '../../utils/dbConnect';

  • Абсолютный импорт:

import dbConnect from 'src/utils/dbConnect';

Вот ссылка на пример проекта, который может вам помочь: https://github.com/vercel/next.js/tree/canary/examples/with-mongodb-mongoose

Если вы заинтересованы в использовании абсолютного импорта, вы можете проверить эту ссылку на документацию: https://nextjs.org/docs/advanced-features/module-path-aliases

Комментарии:

1. Как я могу убедиться, что утилиты для API не включены в клиент?

2. Чтобы ответить самому себе: все, что не импортируется из клиентского кода (и импортируется только в коде API), не должно быть включено в клиент по умолчанию.

3. @Risadinha спасибо за продолжение, это был ответ, который я искал.

4. @Risadinha Ваш комментарий помог мне — наличие utils/helpers.js и еще utils/api_helpers.js чтобы избежать импорта клиента и api из одного и того же файла, моя проблема была решена