NestJs 核心类 NestFactory
NestJs
是一个用于构建高效、可扩展和可维护的Nodejs
应用程序的框架。
NestFactory
是 NestJS
框架的一个核心类,但它并不基于 Express
。
虽然 NestJS
在底层使用了一些类似于 Express
的概念和设计原则,但它是一个独立的框架,自己实现了路由和中间件的功能。
NestFactory
提供了一个类似于 Express
的方式来创建应用程序实例,但它并不是对 Express
的简单封装。
需要注意的是,NestFactory
仅仅是 NestJS
框架的一部分,它还有其他许多核心类和模块,用于处理路由、中间件、依赖注入等功能。(这点和Angular很相似)
create()方法
第一个参数接受一个根模块作为参数,第二个参数是一个可选的配置对象,用于配置应用程序实例的行为和属性。这个配置对象可以包含如下属性:
- 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:其他自定义选项,这些选项将会传递给应用程序实例。
下面是一个使用NestFactory.create()方法的示例代码,演示如何使用第二个参数配置应用程序:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
cors: true,
bodyParser: true,
logger: true,
abortOnError: true
});
await app.listen(3000);
}
bootstrap();
在上面的示例中,我们在NestFactory.create()方法的第二个参数中传入了一个配置对象。我们启用了CORS、请求主体解析、日志记录和错误时终止程序,通过设置cors、bodyParser、logger和abortOnError属性为true。
通过使用NestFactory.create()方法的第二个参数,我们可以自定义应用程序实例的行为和属性,以满足特定的需求。这提供了更大的灵活性和可定制性,使得我们可以根据项目的具体要求进行配置。