我已经使用 NestJS 玩了大约一个星期。到目前为止,我真的很喜欢它。模块系统很棒。而且,我喜欢做解析请求之类的事情是多么容易。
我确实有一个问题是关于 NestJS CLI。
假设我有多个模块。我可以使用以下命令创建一个控制器。
nest g controller Accounts
Run Code Online (Sandbox Code Playgroud)
如何指定此控制器属于哪个模块?
CLI 似乎默认为您创建的最后一个模块。
我该如何改变这种行为?
Jay*_*iel 12
据我所知,CLI 将查看您是否有任何模块与您正在创建的控制器的名称相匹配。例如,如果您运行
nest g mo accounts
nest g mo contacts
nest g mo leads
Run Code Online (Sandbox Code Playgroud)
然后你对控制器运行相同的,但顺序不同,比如
nest g co leads
nest g co accounts
nest g co contacts
Run Code Online (Sandbox Code Playgroud)
你仍然会得到AccountsControllerin AccountsModule、LeadsControllerinLeadsModule和ContactsControllerinContactsModule
如果您希望将特定控制器添加到名称与控制器不同的模块(即添加LeadsController到AccountsModule),您可以将path选项作为最终参数传递给 CLI,例如
nest g co leads accounts
Run Code Online (Sandbox Code Playgroud)
您提供的路径是相对于的src(或您的根目录在nest-cli.json. 这将创建文件accounts/leads所在的目录,leads.controller.ts并将控制器添加到AccountsModule.
Nest 默认将新类添加到同名模块中的原因是为了便于功能模块开发。不需要指定模块使 CLI 的使用对开发人员(通常)更加友好,作为后备,如果找不到模块,CLI 会将其添加到AppModule(或任何您调用的根模块)。
小智 8
如果模块已经存在,您只需在控制器/服务后面添加其名称(否则..)
nest generate controller <controller_name> <module_name> [--flat]
Run Code Online (Sandbox Code Playgroud)
“--flat”选项,如果您不想为控制器生成新文件夹
| 归档时间: |
|
| 查看次数: |
3533 次 |
| 最近记录: |