目录
Read-Eval-Print-Loop(REPL)
REPL 是一个简单的交互式环境,它接收单个用户输入,执行它们,并将结果返回给用户。 REPL 功能允许您从终端直接检查依赖关系图并调用提供程序(和控制器)的方法。
用法
要在 REPL 模式下运行 NestJS 应用程序,
请创建一个新的 repl.ts
文件(与现有的 main.ts
文件相邻),
并在其中添加以下代码:
repl.ts
import { repl } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
await repl(AppModule);
}
bootstrap();
然后在终端中,使用以下命令启动 REPL:
npm run start -- --entryFile repl
note
repl
返回一个 Node.js REPL 服务器对象。
一旦它启动起来,您应该在控制台中看到以下消息:
LOG [NestFactory] Starting Nest application...
LOG [InstanceLoader] AppModule dependencies initialized
LOG REPL initialized
现在,您可以开始与您的依赖关系图进行交互。
例如,您可以检索一个 AppService
(在这里我们使用启动项目作为示例)并调用 getHello()
方法:
> get(AppService).getHello()
'Hello World!'
您可以从终端执行任何 JavaScript 代码,
例如,将 AppController
的实例分配给一个本地变量,
并使用 await
调用异步方法:
> appController = get(AppController)
AppController { appService: AppService {} }
> await appController.getHello()
'Hello World!'
要显示给定提供程序或控制器上所有公共方法,使用 methods()
函数,如下所示:
> methods(AppController)
Methods:
◻ getHello
要将所有注册的模块打印为列表,以及它们的控制器和提供程序,使用 debug()
。
> debug()
AppModule:
- controllers:
◻ AppController
- providers:
◻ AppService