Nest:REPL 控制台调试大法

什么是 REPL?

在开发 Nest.js 应用时,通常需要在浏览器中访问特定 URL 并通过 GET 或 POST 方式传参来测试模块、服务和控制器,这种方法虽然有效,但有时候可能会显得繁琐。

Nest.js 提供了 REPL 模式,类似于 Node.js 的 REPL,允许开发者在控制台中直接测试代码。

创建 Nest 项目:

bash 复制代码
nest new repl-test -p npm

创建 test 模块:

运行项目:

typescript 复制代码
npm run start:dev

运行 repl 模式

在 src 下创建 repl.ts,内容如下:

重新通过这种方式运行项目:

bash 复制代码
npm run start:dev -- --entryFile repl

其中 --entryFile 用于指定入口文件为 repl.ts

REPL 模式下的操作

使用 debug() 查看所有模块以及模块下的控制器和提供者:

methods() 查看某个控制器或提供者的方法:

使用 get()$() 获取提供者或控制器的实例并调用其方法:

注意事项:REPL 模式下,直接调用的方法不会触发管道(pipe)、拦截器(interceptor)等,仅用于传参测试函数。

配置命令历史

为了保留命令历史,可以按住上下键进行历史导航,可以在 repl.ts 中添加历史设置代码:

typescript 复制代码
import { repl } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const replServer = await repl(AppModule);
  replServer.setupHistory('.nestjs_repl_history', (err) => {
    if (err) {
      console.error(err);
    }
  });
}
bootstrap();

最后我们可以把命令配置到 npm script:

bash 复制代码
"repl:dev": "npm run start:dev -- --entryFile repl",
相关推荐
风止何安啊29 分钟前
React 入门秘籍:像搭积木一样写网页,JSX 让开发爽到飞起!
前端·react.js·前端框架
whyfail31 分钟前
React原理(暴力版)
前端·react.js
shoa_top33 分钟前
一文带你掌握 JSONP:从 Script 标签到手写实现
前端·面试
Crazy_Urus33 分钟前
深入解析 React 史上最严重的 RCE 漏洞 CVE-2025-55182
前端·安全·react.js
八荒启_交互动画34 分钟前
【基础篇007】GeoGebra工具系列_多边形(Polygon)
前端·javascript
清风扶我腰_直上青天三万里34 分钟前
vue框架无痛开发浏览器插件,好用!!本人使用脚手架开发了一款浏览器tab主页加收藏网址弹窗,以后可以自己开发需要的插件了!!
前端
知其然亦知其所以然35 分钟前
小米的奇幻编程之旅:当 JavaScript 语法变成了一座魔法城
前端·javascript·面试
webkubor36 分钟前
一次 H5 表单事故:100vh 在 Android 上到底坑在哪
前端·javascript·vue.js
是一碗螺丝粉36 分钟前
突破小程序5层限制:如何用“逻辑物理分离”思维实现无限跳转
前端·架构
神秘的猪头37 分钟前
🎉 React 的 JSX 语法与组件思想:开启你的前端‘搭积木’之旅(深度对比 Vue 哲学)
前端·vue.js·react.js