help汉化

Usage: nest <command> [options]

Options:
  -v, --version    输出当前版本
  -h, --help       输出使用信息

Commands:
  new|n [options] [name]        生成Nest应用程序
  build [options] [app]         构建Nest应用程序
  start [options] [app]         运行Nest应用程序。
  info|i                        显示Nest项目详细信息。
  add [options] <library>       将对外部库的支持添加到项目中。
  generate|g [options] <schematic> [name] [path]     生成Nest相关文件:模块、控制器、服务等

生成Nest相关文件示意表:

name(名称) alias(别名) description(描述)
application application 生成新的应用程序工作区,和new命令效果相同
class cl 创建一个指定名字的目录和class类文件
configuration config 生成CLI配置文件
controller co 生成controller文件
decorator d 生成自定义装饰器文件
filter f 生成过滤器器文件
gateway ga 生成网关
guard gu 生成守护
interceptor itc 生成拦截器文件
library lib 在monorepo中生成新库
middleware mi 生成中间件文件
module mo 生成模块文件
pipe pi 生成管道文件
provider pr 生成提供程序
resolver r 生成GraphQL解析器
resource res 生成新的CRUD资源
service s 生成服务service文件
sub-app app 在monorepo中生成新应用程序

在生成控制器,服务等文件的时候会同时生成一份测试用的文件,可以在命令后缀追加--no-spec 表示不生成测试文件。

示例命令

生成auth模块文件:

nest g mo auth --no-spec

生成auth控制器文件:

nest g co auth --no-spec

生成auth服务文件:

nest g s auth --no-spec

nest会创建一个auth目录,里面就会是生成的对应的文件:

auth.module.ts
auth.controller.ts
auth.service.ts

resource生成资源

如果我们需要单独创建某一个文件,上面的示例其实已经足够了,但是有时候我们可能需要创建一个完整的资源,这个资源包含了:模块、控制器、服务等文件。

我们就可以使用resource

nest g res auth --no-spec

此时就会显示生成的风格选项:

? What transport layer do you use? (Use arrow keys)
> REST API 
  GraphQL (code first) 
  GraphQL (schema first) 
  Microservice (non-HTTP) 
  WebSockets

一般开发接口,我们直接选择REST API即可,此时还会提示是否生成数据库的数据模型:

? Would you like to generate CRUD entry points? (Y/n) 

这个文件一般用于传统的ORM 框架使用,比如TypeORM,当然不同的框架可能会有各自的模型管理方案,这里就看自己需要是否创建,由于我们使用的是prisma,它的表结构不需要单独声明一个文件,我们可以输入n不进行创建。

回车后就会产生三个文件:

auth.module.ts
auth.controller.ts
auth.service.ts

但是如果我们在选择是否生成数据库数据模型时选择y,则还会生成DTO和entities实体类文件供我们使用:

dto/create-auth.dto.ts
dto/update-auth.dto.ts
entities/auth.entity.ts
auth.module.ts
auth.controller.ts
auth.service.ts

由于生成的是REST API风格的资源,所以文件中会有一些常规的示例代码,可以自己改改使用。

至于DTO和entities文件:

  1. DTO是用于客户端与控制器交互数据用的。
  2. entities实体类,是用于给TypeORM使用的,一般用于模型定义,当然也可以用来作为返回给前端数据用的一个操作类,具体可以看之后序列化的文章。
分类: Nest.js 标签: 命令创建cli指令Nestjshelp

评论

暂无评论数据

暂无评论数据

目录