Насколько мне известно, 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). модуль называется).