Как указать, к какому модулю добавить контроллер в Nest JS CLI? - PullRequest
0 голосов
/ 29 февраля 2020

Я играл с Nest JS около недели. Пока что мне действительно это нравится. Система модулей отличная. И мне нравится, как легко выполнять такие вещи, как запросы на синтаксический анализ.

Один вопрос, который у меня возникает, касается Nest JS CLI.

Предположим, у меня несколько модулей. Я могу создать контроллер с помощью следующей команды:

nest g controller Accounts

Как мне указать, к какому модулю принадлежит этот контроллер?

По-видимому, CLI по умолчанию соответствует последнему созданному вами модулю.

Как изменить это поведение?

1 Ответ

1 голос
/ 29 февраля 2020

Насколько мне известно, CLI увидит, есть ли у вас модули, соответствующие названию создаваемого вами контроллера. Например, если вы запустите

nest g mo accounts
nest g mo contacts
nest g mo leads

, а затем выполните то же самое для контроллеров, но в другом порядке, например

nest g co leads
nest g co accounts
nest g co contacts

, вы все равно получите AccountsController в AccountsModule, LeadsController в LeadsModule и ContactsController в ContactsModule

Если вы хотите добавить указанный контроллер c в модуль с другим именем чем контроллер (т.е. добавьте LeadsController к AccountsModule), вы можете передать опцию path в качестве окончательного параметра в CLI, например:

nest g co leads accounts

Указанный вами путь относительно src (или ваш каталог root находится в nest-cli.json). Это создаст каталог accounts/leads, в котором будет находиться файл leads.controller.ts, и добавит контроллер в AccountsModule.

. Причина, по которой Nest добавляет новый класс в модуль с тем же именем, по умолчанию допускается легкая разработка функционального модуля. Отсутствие необходимости указывать модуль делает использование CLI более удобным для разработчиков (обычно), и в качестве запасного варианта, если модуль не может быть найден, CLI добавляет его к AppModule (или к тому, что у вас есть root). модуль называется).

...