我是一名前端开发人员,不熟悉 Node.js 的命令行工具
我目前使用 iTerm 和 zShell,但在网上找不到有关折叠控制台输出的任何资源(类似于 Chrome 控制台格式化对象的方式)。我尝试使用外汇但似乎无法通过实用程序传输和利用 Node 输出。
node -e 'console.log({ a: { b: 2 } })';
node -e 'console.log(JSON.stringify({ a: { b: 2 } }, null, 2))';
对于大型网络对象,折叠嵌套层会更加方便。如果能有语法高亮功能就更好了。
有没有简单的方法来调试 Node.js 控制台输出 JSON?
我是否缺少基本的 CLI 工具?我知道这是一个相对开放的问题,但我认为这对其他和我处境相同的人来说是一个很好的资源(我花了大约 3 个小时进行研究,但几乎没有任何进展)。
谢谢
答案1
第一行的问题是,node
当您使用时,命令不会生成有效的 JSON 字符串console.log
。您需要自己将对象编码为 JSON 字符串。
第二行正确地将对象编码为 JSON 字符串(使用stringify
):
node -e 'console.log(JSON.stringify({ a: { b: 2 } }, null, 2))'
要通过管道传输命令的 JSON 字符串输出,node
您需要省略分号;
。bash 中的分号用于分隔命令。有关 bash 中分号含义的更多信息:docstore.mik.ua/orelly/unix3/upt/ch28_16.htm
您可以这样将输出传输到fx
:
node -e 'console.log(JSON.stringify({ a: { b: 2 } }, null, 2))' | fx
以下是将输出传输到管道的方式jq
:
node -e 'console.log(JSON.stringify({ a: { b: 2 } }, null, 2))' | jq
fx
使用起来可能会更直观。
jq
如果您需要处理大量输出,可能会派上用场。
杰奇是一个轻量级且灵活的命令行 JSON 处理器。
以下是有关如何安装的一些信息:stedolan.github.io/jq/download
下面是关于如何使用进行一些基本过滤的教程jq
:
stedolan.github.io/jq/tutorial
答案2
值得一提的是,Node.js 可以通过监听localhost:9229
就我而言:
- 我去了
chrome://inspect/#devices
- 打开 Node.js 调试器
- 更改
localhost:9229
为127.0.0.1:9229
“连接”面板...这花了几个小时才发现 - 创建并运行 package.json 命令
"debug": "node --inspect-brk ./node_modules/jest/bin/jest.js --config=jest.config.js --timeout=60000 --runInBand",
- 接受在 Node.js 源面板中进行调试,并且 console.log 不起作用,但观察变量很方便