【问题标题】:How To Specify Which Module to add Controller to in NestJS CLI?如何在 NestJS CLI 中指定要添加控制器的模块?
【发布时间】:2020-06-13 02:58:29
【问题描述】:

我已经用 NestJS 玩了大约一个星期。到目前为止,我真的很喜欢它。模块系统很棒。而且,我喜欢解析请求之类的事情是多么容易。

我确实有一个关于 NestJS CLI 的问题。

假设我有多个模块。我可以使用以下命令创建控制器。

nest g controller Accounts

如何指定这个控制器属于哪个模块?

CLI 似乎默认为您创建的最后一个模块。

如何改变这种行为?

【问题讨论】:

    标签: typescript nestjs


    【解决方案1】:

    如果模块已经存在,你可以先给出模块名称,然后是你生成的:

    nest g  pr PriceLevel PriceLevel
    

    将在 PriceLevel 模块内生成 PriceLevel 提供者

    【讨论】:

      【解决方案2】:

      据我所知,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
      

      您仍然会在AccountsModule 中获得AccountsController,在LeadsModule 中获得LeadsController,在ContactsModule 中获得ContactsController

      如果您希望将特定控制器添加到名称与控制器不同的模块(即将LeadsController 添加到AccountsModule),您可以将path 选项作为最终参数传递给CLI例如

      nest g co leads accounts
      

      您提供的路径是相对于src(或您的根目录在nest-cli.json 中的任何内容)。这将创建 leads.controller.ts 文件所在的目录 accounts/leads,并将控制器添加到 AccountsModule

      Nest 默认将新类添加到同名模块的原因是为了方便功能模块开发。不需要指定模块使 CLI 的使用对开发人员更加友好(通常),并且作为后备,如果找不到模块,CLI 会将其添加到 AppModule (或任何你有调用的根模块)。

      【讨论】:

        猜你喜欢
        • 2020-09-02
        • 2016-09-01
        • 2022-10-15
        • 2019-03-17
        • 1970-01-01
        • 2020-09-14
        • 2022-06-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多