假设您有基本的NestJS设置:
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.enableCors(corsOptions);
app.useGlobalPipes(
new ValidationPipe({
validateCustomDecorators: true,
transform: true,
whitelist: true,
exceptionFactory: exceptionFactory,
}),
);
app.useGlobalFilters(new CustomExceptionsFilter());
const port = parseInt(process.env.PORT);
await app.listen(port);
}
是否可以从不同模块中的服务访问用NestFactory创建的app
变量?
@Injectable()
export class TestService {
constructor(
...
) {}
async useApp(): Promise<any> {
const app = ... // use Injected app instance created from AppModule
}
我尝试过导入AppModule并再次创建NestFactory,但它只是解决了冗余问题。
2条答案
按热度按时间dgsult0t1#
NestFactory.create
将创建app
,这取决于模块及其提供程序。在创建app
之前使用它没有意义。相反,你可以告诉我们你想用
app
在TestService
做什么。weylhg0b2#
没有办法从Nest容器中获取
app
示例本身,您可以在NestFactory.create()
创建应用程序后将其导出。但是,如果您正在寻找
AppModule
的示例,下面的代码片段可能会对您有所帮助。