Node.js中不使用console.log()如何直接输出语句执行结果
Node.js 无需console.log直接输出语句执行结果的方法
完全可以实现,本质是切换Node.js的运行模式,不需要修改原代码就能达到类似PowerShell自动输出语句结果的效果,常用方法如下:
- 交互式逐行调试场景
直接在控制台输入node回车,就能进入Node自带的REPL交互环境,这个环境默认会把你每一次输入的语句执行结果直接打印出来,根本不需要手动写console.log()。你逐行输入Code1里的代码:
每输完一行按回车,控制台会依次输出let x = 1, y = 2; x + y; x * 2;undefined(变量声明语句本身没有返回值)、3、2,和你要的效果完全一致。 - 直接运行已写好的无log脚本文件
如果你已经存好了test.js文件(就是Code1那种没加console.log的版本),不需要改一行代码,直接在控制台跑这个命令就行:
命令逻辑是把test.js的全部内容作为输入喂给Node的交互模式执行,执行过程中会自动逐行输出每条语句的返回值,效果和你手动在REPL里逐行敲代码一模一样。node -i < test.js
补充说明:平时用
node test.js跑脚本没输出,是因为这时候Node跑在脚本执行模式下,定位是运行正式业务代码,默认不会打印多余的表达式结果;加-i参数或者直接敲node进入的是REPL交互模式,定位是快速测试代码,默认输出每条语句结果,这是Node原生就有的模式差异,不用安装任何第三方工具。
如果只需要看整个脚本最后一条语句的执行结果,连重定向都不用,直接用自带的-p(别名--print)参数就行,比如执行node -p "let x=1,y=2;x+y;x*2"就会直接输出最后一句的结果2,只是这个方式不会打印中间语句的执行结果,适合只需要最终返回值的场景。
内容的提问来源于stack exchange,提问作者Ding Xin
相关产品推荐
相关产品推荐

