1.main.ts 文件做了什么?
核心文件,通过 NestFactory.create 创建应用程序实例,完成一些中间件、守卫、管道、异常过滤器、拦截器的注册。
2.NestFactory.create(appModele,options?) 做了什么?
创建应用程序实例,该方法接受两个参数,第一个参数是一个根模块,第二个参数是一个可选的配置对象,用于配置应用程序实例的行为和属性。这个配置对象可以包含如下属性:
- abortOnError:它决定了当在启动过程中发生错误时是否要终止应用程序的启动。如果 abortOnError 设置为 true(默认值为 false),当发生错误时,Nest.js 会立即终止应用程序的启动,并输出错误信息。如果 abortOnError 设置为 false,则会继续启动应用程序,但会打印出错误信息。
- logger:指定自定义的日志记录器,用于记录应用程序的日志。可以使用NestLogger或任何实现了LoggerService接口的自定义日志记录器。
- cors:配置跨域资源共享(CORS)的行为。可以设置为布尔值或CorsOptions对象。如果设置为true,则默认启用CORS。如果设置为CorsOptions对象,则可以指定更详细的CORS选项,例如允许的原始资源、允许的HTTP方法等。
- bodyParser:配置请求主体的解析方式。可以设置为布尔值或BodyParserOptions对象。如果设置为true,则默认启用请求主体的解析。如果设置为BodyParserOptions对象,则可以指定更详细的解析选项,例如解析的主体大小限制、启用文件上传等。
- factory:指定自定义应用程序工厂,用于创建应用程序实例。可以使用NestApplicationFactory或任何实现了INestApplicationFactory接口的自定义工厂。
- httpsOptions:配置HTTPS服务器的选项。可以设置为HttpsOptions对象,包含有关SSL证书、私钥等的详细信息。
- microservices:配置微服务的选项。可以设置为MicroserviceOptions对象,包含有关微服务的详细信息,例如传输协议、侦听器等。
- extraOptions:其他自定义选项,这些选项将会传递给应用程序实例。
3.通过NestFactory.create()方法创建的应用程序实例,有哪些方法?
- useGlobalGuards:设置全局守卫(守卫在每个中间件之后执行,但在任何拦截器或管道之前执行)。
- useGlobalFilters:设置全局过滤
- useGlobalInterceptors:设置全局拦截器